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;}