50,338
社区成员




import java.util.HashMap;
import java.util.Map;
public class TrasIntToStr {
//字符串特殊处理,不及十二位的高位用0补齐
static StringBuffer strs = new StringBuffer("020101001010");
public static void main(String[] args) {
System.out.println(Utils.convertForCH(strs));
}
}
class Utils{
private static Map<Character, String> map = new HashMap<Character, String>();
static{
map.put('1', "一");
map.put('2', "二");
map.put('3', "三");
map.put('4', "四");
map.put('5', "五");
map.put('6', "六");
map.put('7', "七");
map.put('8', "八");
map.put('9', "九");
map.put('0', "零");
}
public static String convertCharToCn(Character ch){
if(ch == null) return "";
return map.get(ch);
}
//四个及以下字符转换
public static String convert4ChString(String str){
if (str == null) {
return "";
}
StringBuffer stringBuffer = new StringBuffer();
String string1 = convertCharToCn(str.charAt(3));
String string2 = convertCharToCn(str.charAt(2));
String string3 = convertCharToCn(str.charAt(1));
String string4 = convertCharToCn(str.charAt(0));
boolean needsZero = false;
if (!string1.equals("零")) {
stringBuffer.append(string1).append("千");
needsZero = true;
}
else if(string2.equals("零") && string3.equals("零") && string4.equals("零")) {
stringBuffer.append("零");
}
if (!string2.equals("零")) {
stringBuffer.append(string2).append("百");
needsZero = true;
}
else if(needsZero && (!string3.equals("零") || !string4.equals("零"))){
stringBuffer.append("零");
needsZero = false;
}
if (!string3.equals("零")) {
stringBuffer.append(string3).append("十");
needsZero = true;
}
else if(needsZero && !string4.equals("零")){
stringBuffer.append("零");}
if (!string4.equals("零")) {
stringBuffer.append(string4);
}
return stringBuffer.toString();
}
public static String convertForCH(StringBuffer stringBuffer){
//字符串特殊处理,不及十二位的高位用0补齐
StringBuffer strs = stringBuffer;
String string = strs.reverse().toString();
String string3 = "";
String string2 = "";
String string1 = "";
StringBuffer result = new StringBuffer();
string1 = Utils.convert4ChString(string.substring(0, 4));
string2 = Utils.convert4ChString(string.substring(4, 8));
string3 = Utils.convert4ChString(string.substring(8, 12));
if (!string3.equals("零")) {
result.append(string3).append("亿");
}
if (!string2.equals("零")) {
result.append(string2).append("万");
}
if (!string1.equals("零")) {
result.append(string1);
}
return result.toString();
}
}
输出:二百零一亿一百万一千零一十
零的处理有点麻烦,其他还好