站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2SE 专题求阿拉伯数字转大写数字方法

求阿拉伯数字转大写数字方法

摘要: 求阿拉伯数字转大写数字方法


我写了一个,但是有点问题,请大家帮忙。
package my;



public class bb {
public static void main(String []args){
bb b = new bb();
System.out.println(b.numToUpper(1078304688));
}
public String numToUpper(int i) {
String s = -#34;/u96F6/u58F9/u8D30/u53C1/u8086/u4F0D/u9646/u67D2/u634C/u7396-#34;;
String s1 = -#34;/u3000/u62FE/u4F70/u4EDF/u4E07/u62FE/u4F70/u4EDF/u4EBF/u62FE/u4F70/u4EDF-#34;;
String s2 = Integer.toString(i);
String s3 = -#34;-#34;;
int j = s2.length();
System.out.println(s);
System.out.println(s1);
for (int k = 0; k -#60; j; k++) {
String s5 = s2.substring(k, k + 1);
String s8 = s.substring(Integer.parseInt(s5),
Integer.parseInt(s5) + 1);
//System.out.println(s8);
String s10 = s1.substring(j - k - 1, j - k);
System.out.println(-#34;a-#34;+s10);
if (Integer.parseInt(s2.substring(k, j)) != 0) {
if (!s5.equals(-#34;0-#34;)) {
s3 = s3 + s8 + s10;
} else if ((k -#62; 0) -#38;-#38; !s2.substring(k - 1, k).equals(-#34;0-#34;)) {
s3 = s3 + s8;
}
}

if (j == 1) {
String s6 = s2.substring(k, k + 1);
s3 = s.substring(Integer.parseInt(s6), Integer.parseInt(s6) +
1);
}
}
if (j-#62;=6-#38;-#38;s2.substring(1,6).equals(-#34;00000-#34;)){
s3=s3+-#34;万-#34; ;
}
return s3;
}


}



public class bb {
public static void main(String []args){
bb b = new bb();
System.out.println(b.numToUpper(1078304688));
}
public String numToUpper(int i) {
String s = -#34;/u96F6/u58F9/u8D30/u53C1/u8086/u4F0D/u9646/u67D2/u634C/u7396-#34;;
String s1 = -#34;/u3000/u62FE/u4F70/u4EDF/u4E07/u62FE/u4F70/u4EDF/u4EBF/u62FE/u4F70/u4EDF-#34;;
String s2 = Integer.toString(i);
String s3 = -#34;-#34;;
int j = s2.length();
System.out.println(s);
System.out.println(s1);
for (int k = 0; k -#60; j; k++) {
String s5 = s2.substring(k, k + 1);
String s8 = s.substring(Integer.parseInt(s5),
Integer.parseInt(s5) + 1);
//System.out.println(s8);
String s10 = s1.substring(j - k - 1, j - k);
System.out.println(-#34;a-#34;+s10);
if (Integer.parseInt(s2.substring(k, j)) != 0) {
if (!s5.equals(-#34;0-#34;)) {
s3 = s3 + s8 + s10;
} else if ((k -#62; 0) -#38;-#38; !s2.substring(k - 1, k).equals(-#34;0-#34;)) {
s3 = s3 + s10;
}
}

if (j == 1) {
String s6 = s2.substring(k, k + 1);
s3 = s.substring(Integer.parseInt(s6), Integer.parseInt(s6) +
1);
}
}
if (j-#62;=6-#38;-#38;s2.substring(1,6).equals(-#34;00000-#34;)){
s3=s3+-#34;万-#34; ;
}
return s3;
}


}


上面的应该符合你的要求。

就是把
if (!s5.equals(-#34;0-#34;)) {
s3 = s3 + s8 + s10;
} else if ((k -#62; 0) -#38;-#38; !s2.substring(k - 1, k).equals(-#34;0-#34;)) {
s3 = s3 + s8;
}
改成:
if (!s5.equals(-#34;0-#34;)) {
s3 = s3 + s8 + s10;
} else if ((k -#62; 0) -#38;-#38; !s2.substring(k - 1, k).equals(-#34;0-#34;)) {
s3 = s3 + s10;
}


恩,正解,不好意思是我没错了。朋友能否留下你的QQ号,以后有问题多多请教。

还有,我要是输入10000000哪结果是 壹仟佰万
这好像不对吧,应该是 壹仟万
这样的情况怎么弄。
你哪样改不对啊,有问题,我这样改之后就行了。
package p200609;

public class p15 {
public static void main(String []args){
p15 p1=new p15();
System.out.print(p1.numToUpper(123456789));
}
public String numToUpper(int i){
String s=-#34;/u96F6/u58F9/u8D30/u53c1/u8086/u4F0D/u9646/u67D2/u634C/u7396-#34;;
String s1=-#34;/u3000/u62FE/u4F70/u4EDF/u4E07/u62FE/u4F70/u4EDF/u4EBF/u62FE/u4F70/u4EDF-#34;;
String s2=Integer.toString(i);
String s3=-#34;-#34;;
int j=s2.length();
for(int k=0;k-#60;j;k++){
String s4=s2.substring(k,k+1);//s4取的是s2的每一位
String s5=s.substring(Integer.parseInt(s4),Integer.parseInt(s4)+1);//s5取的是大写的具体哪一位
String s6=s1.substring(j-k-1,j-k);//s6取的是是哪一位(拾,佰)
if(i!=0){
if(!s4.equals(-#34;0-#34;)){s3=s3+s5+s6;}
}
if(j==1){
String s7=s2.substring(k,k+1);
s3=s.substring(Integer.parseInt(s7),Integer.parseInt(s7)+1);}
}
if(j-#62;=6-#38;-#38;s2.substring(1,6).equals(-#34;00000-#34;)-#38;-#38;(!s2.substring(1,j).equals(-#34;00000000-#34;))){
s3=s3+-#34;万-#34;;
}
return s3;
}



}


↑返回目录
前一篇: 【散分庆祝】做完项目,散分庆祝,大家快接啊,不够再家分!
后一篇: 【提问】能不能读写一个正在被其它文件使用的文件啊?