如:
(¥1011)->(一千零一拾一元整)输出
(¥1011)->(一千零一拾一元整)输出
解决方案 »
- java中有哪些算法啊?能不能详细介绍下
- 用java写的一个批量修改文件夹图标的小程序,大家来瞧瞧啊~
- 是不是不能监听主菜单Menu对象
- 新浪新闻内容的采集
- 弹出窗口时程序等待,窗口关闭后程序继续怎么做?
- 怎样的水平才叫精通java
- 1.4W的婚纱照片----------看看我跟老婆幸福合影!----不要PK我哟!
- 求Thinking in java第三版(中文)书上例子的源代码
- 紧急求助有关使用JSpinner作为table cell editor的问题
- JB6中出现这个错误信息,怎么办!!!!
- 为什么类中定义的属性直接赋值与在方法中赋值会有不同
- java.lang.Runtime.getRuntime 为什么执行不了啊
前几天刚写过个
http://topic.csdn.net/u/20080908/22/91c8a9a8-2405-4ed2-952e-a14ac4443021.html
public class test{
String bignum[] = {"零","一","二","三","四","五","六","七","八","久"};
String sign1[] = {"","十","百","千"};
String sign2[] = {"圆","万","亿","兆"};
String sign3[] = {"角","分","厘"};
test(String s){
s = s.replaceFirst("^0+","");
int pt = s.indexOf(".");
if(pt<0)
s = parta(s);
else
s = parta(s.substring(0,pt))+partb(s.substring(pt+1));
System.out.println(s);
}
String parta(String s){
int[] number = new int[s.length()];
for(int i=0;i<s.length();i++)
number[s.length()-1-i] = Integer.parseInt(i==s.length()-1?s.substring(i):s.substring(i,i+1));
s = "";
for(int i=number.length-1;i>=0;i--){
s+=bignum[number[i]];
s+=i%4==0?sign2[i/4]:number[i]>0?sign1[i%4]:"";
}
while(s.indexOf("零零")!=-1)
s=s.replaceFirst("零零","零");
for(int i=0;i<sign1.length;i++)
while(s.indexOf("零"+sign2[i])!=-1)
s=s.replaceFirst("零"+sign2[i],sign2[i]);
for(int i=sign2.length-1;i>0;i--)
while(s.indexOf(sign2[i]+sign2[i-1])!=-1)
s=s.replaceFirst(sign2[i]+sign2[i-1],sign2[i]);
return s;
}
String partb(String s){
int[] number = new int[s.length()];
for(int i=0;i<s.length();i++)
number[s.length()-1-i] = Integer.parseInt(i==s.length()-1?s.substring(i):s.substring(i,i+1));
s = "";
for(int i=number.length-1;i>=0;i--)
if(number[i]>0)
s += bignum[number[i]]+sign3[number.length-i-1];
return s;
}
public static void main(String args[]){
new test(args[0]);
}
}
{
static char [] chineseNumber = {'零','壹','贰','叁','肆','伍','陆','柒','捌','玖'};
static char [] unitName = {' ','拾','佰','仟'}; public static String toChinese(String numberStr)
{
StringBuffer rs = new StringBuffer();
String theFloat = null;
int dotPos = numberStr.indexOf(".");
if (dotPos != -1)
{
theFloat = "点";
String floatPart = numberStr.substring(dotPos + 1);
numberStr = numberStr.substring(0,dotPos);
for (int i = 0; i < floatPart.length(); i++)
{
theFloat += chineseNumber[floatPart.charAt(i) - '0'];
}
}
int cycleCount = 0;
boolean skip = true;
for (int i = numberStr.length() - 1; i >= 0; i--)
{
if (cycleCount == 4)
{
rs.append("万");
}
else if (cycleCount == 8)
{
rs.append("亿");
cycleCount = 0;
}
int num = (int)(numberStr.charAt(i) - '0');
if (num > 0)
{
rs.append(unitName[cycleCount % 4]);
if (skip)
{
skip = false;
}
}
if (!skip)
{
rs.append(chineseNumber[num]);
}
cycleCount++;
}
int len = rs.length();
StringBuffer sb = new StringBuffer();
for (int i = len - 1; i >= 0; i--)
{
char c = rs.charAt(i);
if (c == ' ')
{
continue;
}
sb.append(c);
}
if (theFloat != null)
{
sb.append(theFloat);
}
return sb.toString();
}
}