问题

zh2656959 2012-08-28 06:17:27
1.用java程序输入标准的金额数字,每三位用逗号隔开,如1,222,343,566.00。解析该数字用xx亿xxx万xxx元输出。
...全文
50 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
孤雨 2012-08-29
  • 打赏
  • 举报
回复
通过正则表达式取得一个String型数组,在由后往前重组并在循环在相应位置加入相应汉字
chen_yanhua123 2012-08-28
  • 打赏
  • 举报
回复
package outputmoney;

import java.util.regex.Pattern;

/**
* @author Yanhua.Chen
* @time 2012-8-28
*/
public class Output {
public static void main(String args[]) {
String str = "89,311,222,222.00"; //标准的金额数字
// 去掉逗号和空格
Pattern p = Pattern.compile("[, ]");
String[] strs = p.split(str);
StringBuffer sb = new StringBuffer();
for (int i = 0; i < strs.length; i++) {
sb.append(strs[i]);
}
str = sb.toString();
String str1 = str.substring(0, str.length() - 3); //去掉小数点后面的数
int l = str1.length();
String[] ans;
if (l % 4 == 0)
ans = new String[l / 4];
else
ans = new String[l / 4 + 1];
for (int i = 0; i < ans.length; i++) {
ans[i] = str1.substring(Math.max(0, l - 4 * i - 4), l - 4 * i);
}
sb = new StringBuffer();
for (int i = ans.length - 1; i >= 0; i--) {
switch (i) {
case 0:
sb.append(ans[i] + "元");
break;
case 1:
sb.append(ans[i] + "万");
break;
case 2:
sb.append(ans[i] + "亿");
break;
case 3:
sb.append(ans[i] + "兆");
break;
}
}
System.out.println(sb.toString());
}
}

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧