|
. public class Test31 { private static final char[] data = {'零','壹','贰','叁','肆','伍','陆','柒','捌','玖'}; private static final char[] units = {'圆','拾','佰','仟','万','拾','佰','仟','亿','拾','佰','仟'};
public static voidmain(String[] args) throws Exception{ // TODOAuto-generated method stub while(true){ Scanner scan = newScanner(System.in); int lon =scan.nextInt(); System.out.println(convert(lon)); scan.close(); } }
private static String convert(int money) throws Exception{ StringBuilder sb = new StringBuilder(); int uint = 0; while(money!=0){ //插入到前面从最小位数开始取 sb.insert(0, units[uint++]); //插入到最前面,系数 sb.insert(0, data[(int)(money%10)]); money = money / 10; } //使用替换的正则表达式将多余的零替换 return sb.toString().replaceAll("零[仟佰拾]"//仟或佰或拾, "零").replaceAll("零//一个或多个零+万", "万") .replaceAll("零+亿", "亿").replaceAll("亿万", "亿零") .replaceAll("零+", "零").replaceAll("零圆", "圆"); }
}
|