硬编码
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;
public class Main{
private static Map<Long, String> map = new HashMap<>();
static {
map.put(1L, "壹");
map.put(2L, "贰");
map.put(3L, "叁");
map.put(4L, "肆");
map.put(5L, "伍");
map.put(6L, "陆");
map.put(7L, "柒");
map.put(8L, "捌");
map.put(9L, "玖");
}
public static void main(String args[]) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String str;
StringBuffer stringBuffer = new StringBuffer();
while ((str = reader.readLine()) != null) {
stringBuffer.append("人民币");
String items[] = str.split("\\.");
Long number = Long.parseLong(items[0]);
if(number > 0){
convert(number, stringBuffer);
stringBuffer.append("元");
}
if (items.length > 1) {
long item = Long.parseLong(items[1]);
if(item >= 10){
stringBuffer.append(map.get(item / 10)).append("角");
if(item % 10 > 0){
stringBuffer.append(map.get(item % 10)).append("分");
}
}else if(item > 0){
stringBuffer.append(map.get(item)).append("分");
}
} else {
stringBuffer.append("整");
}
System.out.println(stringBuffer.toString());
}
reader.close();
}
private static void convert(Long item, StringBuffer stringBuffer) {
String currentString = stringBuffer.toString();
if (item >= 100000000) {
convert(item / 100000000, stringBuffer);
stringBuffer.append("亿");
convert(item % 100000000, stringBuffer);
} else if (item >= 10000) {
convert(item / 10000, stringBuffer);
stringBuffer.append("万");
convert(item % 10000, stringBuffer);
} else if (item >= 1000) {
stringBuffer.append(map.get(item / 1000)).append("仟");
convert(item % 1000, stringBuffer);
} else if (item >= 100) {
stringBuffer.append(map.get(item / 100)).append("佰");
convert(item % 100, stringBuffer);
} else if (item >= 10) {
if ('仟' == currentString.charAt(currentString.length() - 1)) {
stringBuffer.append("零").append(item / 10 > 1 ? map.get(item / 10) : "").append("拾");
convert(item % 10, stringBuffer);
} else {
stringBuffer.append((item / 10 > 1 ? map.get(item / 10) : "")).append("拾");
convert(item % 10, stringBuffer);
}
} else {
if ('佰' == currentString.charAt(currentString.length() - 1)) {
stringBuffer.append("零").append(map.get(item));
} else {
stringBuffer.append(map.get(item));
}
}
}
}