A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 fanshuai 于 2015-3-3 20:11 编辑

这视频,七拼八凑的差不多凑够了。

7 个回复

倒序浏览
本帖最后由 wdhm5423 于 2015-3-3 23:29 编辑

正则表达式很容易跟String挂钩,用起来处理String方便,可以学花不了多久。
我的入学测试题:
  1. 金额转换,阿拉伯数字转换成中国传统形式。

  2. 例如:101000001010   转换为   壹仟零壹拾亿零壹仟零壹拾圆整


  3. 思路:
  4. 1、每一位对应一个单位,每一个数字对应一个数字中文大写形式,可以创建字符串数组,通过位数和数字对应字符串
  5. 2、按对应关系可以得带一串读法字符串,接下来对该字符串进行删减修正。
  6. 3、得到阿拉伯数字的中国传统形式。

  7. */
  8. public class Test10 {
  9.         public static void main(String[] args) {
  10.                 Long l = 101000001010L;
  11.                 String str = l + "";// 转化为字符串
  12.                 StringBuilder sb = new StringBuilder();// 字符串缓冲区
  13.                 trans(str, sb);
  14.                 String s = sb.toString();// 转化为字符,方便替换操作

  15.                 // 对字符串进行修正
  16.                 s = s.replaceAll("零仟", "零");
  17.                 s = s.replaceAll("零佰", "零");
  18.                 s = s.replaceAll("零拾", "零");
  19.                 s = s.replaceAll("拾零", "拾");
  20.                 s = s.replaceAll("佰零{2}", "佰");
  21.                 s = s.replaceAll("仟零{3}", "仟");
  22.                 s = s.replaceAll("亿零{4}万零{4}", "亿");
  23.                 s = s.replaceAll("万零{4}", "万");
  24.                 s = s.replaceAll("亿零{4}万", "亿零");
  25.                 s = s.replaceAll("零+", "零");
  26.                 System.out.println(s);

  27.         }

  28.         public static void trans(String str, StringBuilder sb) {
  29.                 if ("".equals(str)) {// 判断是否已经没有数字
  30.                         return;
  31.                 }
  32.                 String[] shuzi = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" };// 数字对应大写
  33.                 String[] danwei = { "圆整", "拾", "佰", "仟", "万", "拾", "佰", "仟", "亿", "拾",
  34.                                 "佰", "仟" };// 位数对应单位
  35.                 int ns = Integer.parseInt(str.charAt(0) + "");// 取字符串的第一个数
  36.                 int nd = str.length() - 1;// 由字符串的长度得到位数
  37.                 sb.append(shuzi[ns]).append(danwei[nd]);// 把数字加位数构成字符串第一个位置的读法
  38.                 str = str.substring(1);// 把已经读好的第一个位置删除
  39.                 trans(str, sb);// 递归,读接下来的字符串的第一个位置
  40.         }
  41. }
复制代码
回复 使用道具 举报
有第25天的视频么
回复 使用道具 举报
我也想知道、受教了
回复 使用道具 举报
Ender亮 发表于 2015-3-4 08:25
有第25天的视频么

哈哈当然有了,我就知道肯定有人不知道这个。
回复 使用道具 举报
wdhm5423 发表于 2015-3-3 23:28
正则表达式很容易跟String挂钩,用起来处理String方便,可以学花不了多久。
我的入学测试题:
...

这都考,我连0-9那些汉字都不知道。:dizzy:
回复 使用道具 举报
fanshuai 发表于 2015-3-4 12:50
哈哈当然有了,我就知道肯定有人不知道这个。

求地址:handshake
回复 使用道具 举报

http://pan.baidu.com/s/1hqJzmGc#path=%252F%25E9%25BB%2591%25E9%25A9%25AC%25E7%25A8%258B%25E5%25BA%258F%25E5%2591%2598_%25E6%25AF%2595%25E5%2590%2591%25E4%25B8%259C_Java%25E5%259F%25BA%25E7%25A1%2580%25E8%25A7%2586%25E9%25A2%2591%25E6%2595%2599%25E7%25A8%258B%252F%25E9%25BB%2591%25E9%25A9%25AC%25E7%25A8%258B%25E5%25BA%258F%25E5%2591%2598_%25E6%25AF%2595%25E5%2590%2591%25E4%25B8%259C_Java%25E5%259F%25BA%25E7%25A1%2580%25E8%25A7%2586%25E9%25A2%2591%25E6%2595%2599%25E7%25A8%258B%25E7%25AC%25AC25%25E5%25A4%25A9
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马