黑马程序员技术交流社区

标题: 数字和汉字的转换问题求帮主 [打印本页]

作者: 人心如水    时间: 2014-6-11 18:25
标题: 数字和汉字的转换问题求帮主
package com.itheima;

import java.util.Scanner;

/*
* 1、 从键盘接受一个数字,列出该数字的中文表示格式,例如:键盘输入123,打印出一二三;键盘输入3103,打印出三一零三。
*/


public class Test1 {
        public static void main(String[] args) {
                //从键盘输入扫描内容
                Scanner sc = new Scanner(System.in);
                //输出你想要输入的数据
                System.out.println("请输入你要输入的数据");
                //利用键盘输入了一个整数
                int in = sc.nextInt();
                //把输入的整数转换为字符串
                 String str = String.valueOf(in);
                //查找API的String类方法,将输入的字符串转换为字符数组
                //char[] ch = str.toCharArray();
                //将所有数字汉字在数组里体现出来
                //String str1 = "零一二三四五六七八九";
                 char[] ch1 = {'零','一','二','三','四','五','六','七','八','九',};
                // char[] ch2 = new char[];
                //遍历出ch数组里面的元素
                for(int i=0;i<str.length();i++){
                        char ch3=ch1[str.charAt(i)];
                        //char  ch2=ch1[x];
                        System.out.print(ch3);       
                }
        }
}
我的思路是这样的,不过转换的方式应该错了,求正确的做题方法。
作者: axuan    时间: 2014-6-11 19:21
写一个简单的例子吧:
        public static void main(String[] args)
        {
                //简单演示
                String[] table={"零","一","二","三","四","五","六","七","八","九"};
                Scanner scan=new Scanner(System.in);
                String s= scan.next();
                for (char c : s.toCharArray())
        {
                        if(c>='0' && c<='9'){
                                System.out.print(table[c-48]);
                        }
                }
        }
作者: 人心如水    时间: 2014-6-11 21:16
axuan 发表于 2014-6-11 19:21
写一个简单的例子吧:
        public static void main(String[] args)
        {

for (char c : s.toCharArray())  这个是什么意思,for循环里面怎么还能这样啊:(
作者: axuan    时间: 2014-6-11 22:56
人心如水 发表于 2014-6-11 21:16
for (char c : s.toCharArray())  这个是什么意思,for循环里面怎么还能这样啊

就是将字符串转换成字节数组:如  "123" --> char[] ch={'1','2','3'}
作者: 人心如水    时间: 2014-6-11 22:58
axuan 发表于 2014-6-11 22:56
就是将字符串转换成字节数组:如  "123" --> char[] ch={'1','2','3'}

不是说的这个,我是不懂你的for循环,不是应该for(int i = o ;i<arr.length;i++)吗?
作者: axuan    时间: 2014-6-11 23:01
人心如水 发表于 2014-6-11 22:58
不是说的这个,我是不懂你的for循环,不是应该for(int i = o ;i

那个是低级的for循环,计数的,说这句话有点冒昧,
这个是高级for循环,想学习更多,请百度一哈,我就不解释了,共同进步,加油
作者: 人心如水    时间: 2014-6-11 23:04
axuan 发表于 2014-6-11 23:01
那个是低级的for循环,计数的,说这句话有点冒昧,
这个是高级for循环,想学习更多,请百度一哈,我就不 ...

{:2_30:}高级循环,嗯 我去找




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2