本帖最后由 wdhm5423 于 2015-3-3 23:29 编辑  
 
正则表达式很容易跟String挂钩,用起来处理String方便,可以学花不了多久。 
我的入学测试题: 
- 金额转换,阿拉伯数字转换成中国传统形式。
 
  
-  例如:101000001010   转换为   壹仟零壹拾亿零壹仟零壹拾圆整
 
  
 
-  思路:
 
 -  1、每一位对应一个单位,每一个数字对应一个数字中文大写形式,可以创建字符串数组,通过位数和数字对应字符串
 
 -  2、按对应关系可以得带一串读法字符串,接下来对该字符串进行删减修正。
 
 -  3、得到阿拉伯数字的中国传统形式。
 
  
-  */
 
 - public class Test10 {
 
 -         public static void main(String[] args) {
 
 -                 Long l = 101000001010L;
 
 -                 String str = l + "";// 转化为字符串
 
 -                 StringBuilder sb = new StringBuilder();// 字符串缓冲区
 
 -                 trans(str, sb);
 
 -                 String s = sb.toString();// 转化为字符,方便替换操作
 
  
-                 // 对字符串进行修正
 
 -                 s = s.replaceAll("零仟", "零");
 
 -                 s = s.replaceAll("零佰", "零");
 
 -                 s = s.replaceAll("零拾", "零");
 
 -                 s = s.replaceAll("拾零", "拾");
 
 -                 s = s.replaceAll("佰零{2}", "佰");
 
 -                 s = s.replaceAll("仟零{3}", "仟");
 
 -                 s = s.replaceAll("亿零{4}万零{4}", "亿");
 
 -                 s = s.replaceAll("万零{4}", "万");
 
 -                 s = s.replaceAll("亿零{4}万", "亿零");
 
 -                 s = s.replaceAll("零+", "零");
 
 -                 System.out.println(s);
 
  
-         }
 
  
-         public static void trans(String str, StringBuilder sb) {
 
 -                 if ("".equals(str)) {// 判断是否已经没有数字
 
 -                         return;
 
 -                 }
 
 -                 String[] shuzi = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" };// 数字对应大写
 
 -                 String[] danwei = { "圆整", "拾", "佰", "仟", "万", "拾", "佰", "仟", "亿", "拾",
 
 -                                 "佰", "仟" };// 位数对应单位
 
 -                 int ns = Integer.parseInt(str.charAt(0) + "");// 取字符串的第一个数
 
 -                 int nd = str.length() - 1;// 由字符串的长度得到位数
 
 -                 sb.append(shuzi[ns]).append(danwei[nd]);// 把数字加位数构成字符串第一个位置的读法
 
 -                 str = str.substring(1);// 把已经读好的第一个位置删除
 
 -                 trans(str, sb);// 递归,读接下来的字符串的第一个位置
 
 -         }
 
 - }
 
  复制代码 |