Java以上数字转换(大小写转换,数字和英文交换,钱转换)

Java之上数字转换(大小写转换,数字和英文交换,钱转换)公司技能鉴定:题目是从in,txt中读取文字,经过处理输

Java之上数字转换(大小写转换,数字和英文交换,钱转换)

公司技能鉴定:

题目是从in,txt中读取文字,经过处理输出到out.txt中

 处理: 如果是阿拉波数字则需要,转化成英文显示  如:1 输出 ---->  1= one                1 001输出 ---->  1001= one thousand and one

       如果不是啊拉伯数字,则输出 原来的数字=error   如:  sdd123 输出 --> sdd123=error

规则: 只处理小于十位的数字 ,只处理正整数,不输出空行.复杂度不能超过10


呵呵 核心算法:

public static void main(String[] args) throws IOException {System.out.println("请输入金额:");System.out.println(convert(new BufferedReader(new InputStreamReader(System.in)).readLine()));}private static String convert(String s) {String[] numArr = new String[] { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" };String[] unitArr = new String[] { "圆", "拾", "佰", "仟", "萬", "拾", "佰", "仟", "億", "拾", "佰", "仟" };StringBuilder sb = new StringBuilder();for (int i = 0; i < s.length(); i++) {char c = s.charAt(i);int index = Integer.parseInt(String.valueOf(c));sb.append(numArr[index]);sb.append(unitArr[s.length() - 1 - i]);}String result = sb.toString();result = result.replaceAll("零[拾佰仟]", "零");result = result.replaceAll("零{2,}", "零");result = result.replaceAll("零萬", "萬");result = result.replaceAll("零億", "億");return result;}