黑马程序员技术交流社区
标题:
如何把1,2,3,4,5....转变成汉字:一二三四五....
[打印本页]
作者:
m6281838
时间:
2012-12-5 20:06
标题:
如何把1,2,3,4,5....转变成汉字:一二三四五....
我自己写了一些,希望有高手能在我的基础上给我完整一下!
import java.util.*;
public class DuShu {
public static void main(String[] args){
Scanner in=new Scanner(System.in);
int[] arr={0,1,2,3,4,5,6,7,8,9};
char[] Ch={'零','一','二','三','四','五','六','七','八','九'};
int num;
String name;
System.out.println("请输入数字:");
num=in.nextInt();
for(int i=0;i<Ch.length;i++){
int gewei=num%10;
int shiwei=num/10%10;
int baiwei=num/100%10;
int qianwei=num/1000%10;
int wanwei=num/10000%10;
System.out.print(Ch[wanwei]);
System.out.print(Ch[qianwei]);
System.out.print(Ch[baiwei]);
System.out.print(Ch[shiwei]);
System.out.println(Ch[gewei]);
}
}
}
作者:
丁桂松
时间:
2012-12-6 06:43
package dojoo.demo;
import java.util.Scanner;
public class DuShu {
public static void main(String[] args) {
// 导入Scanner 包.控制台输入
Scanner input = new Scanner(System.in);
// int[] arr={0,1,2,3,4,5,6,7,8,9};
String numeric = "零一二三四五六七八九";
System.out.println("请输入数字:");
// 将控制台输入的数字默认成String型
String str = input.next();
for (int i = 0; i < str.length(); i++) {
// 遍历Str中的每个字符.并将该字符转换成String型
String str1 = str.charAt(i) + "";
// 将获取的每个字符转成int
StringBuffer sb1 = new StringBuffer(str1);
int a = Integer.parseInt(sb1.toString());
// 用获得的数字与String numeric 中的角标匹配.得到一个String型的字符串
String sin = numeric.charAt(a) + "";
// 打印出去.不换行.
System.out.print(sin);
}
// 因为时间有限没有深纠.如果需求大点,比如每个数字对应的位数加上百千万等等这些.可能代码的实现形式就不一样了
// 我是按你题目的需求写的.无关其他.当然还需要考虑用户输入的不是数字的问题.这里就没深究了.其实有很多种写法.希望这个对你有帮助.
/*
* for(int i=0;i<Ch.length;i++){ int gewei=num%10; int shiwei=num/10%10;
* int baiwei=num/100%10; int qianwei=num/1000%10; int
* wanwei=num/10000%10;
*
* System.out.print(Ch[wanwei]); System.out.print(Ch[qianwei]);
* System.out.print(Ch[baiwei]); System.out.print(Ch[shiwei]);
* System.out.println(Ch[gewei]); }
*/
}
}
复制代码
看注释.
作者:
黑马刘向阳
时间:
2012-12-6 11:09
import java.util.*;
public class DuShu {
public static void main(String[] args){
Scanner in=new Scanner(System.in);
int[] arr={0,1,2,3,4,5,6,7,8,9};
char[] Ch={'零','一','二','三','四','五','六','七','八','九'};
int num,index;
System.out.println("请输入数字:");
num=in.nextInt();
index = num%10;
StringBuilder sb = new StringBuilder();
sb.append(Ch[index]);
while(num/10!=0) {
num = num/10;
index = num%10;
sb.append(Ch[index]);
}
System.out.println(sb.reverse().toString());
}
}
复制代码
作者:
m6281838
时间:
2012-12-6 19:48
丁桂松 发表于 2012-12-6 06:43
看注释.
谢谢啦哈!其实有很多的代码都很陌生,我就了解常见的几个循环。
作者:
m6281838
时间:
2012-12-6 19:48
刘晓阳 发表于 2012-12-6 11:09
谢谢啦哈,但是你这个还是有点小小的问题,比如我输入:0123,出来的结果是:一二三。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2