A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© olivor 中级黑马   /  2015-11-25 23:27  /  893 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

从键盘接受一个数字,列出该数字的中文表示格式,例如:键盘输入123,打印出一二三;键盘输入3103,打印出三一零三。
* 分析:需求可以使用键和键值对的映射方法来完成编程。
*/
import java.io.*;
import java.util.*;
public class Test2 {

        /**
         * @param args
         */
        public static void main(String[] args) throws IOException
        {
                // 定义一个符合要求的HashMap
Map<String,String> map = new HashMap<String,String>();
map.put("1", "一");
map.put("2", "二");
map.put("3", "三");
map.put("4", "四");
map.put("5", "五");
map.put("6", "六");
map.put("7", "七");
map.put("8", "八");
map.put("9", "九");
map.put("0", "零");
        // 指数用户输入一个数字,并按Enter键
System.out.print("请输入一个阿拉伯数字,并按Enter键");
        // 创建一个字符流缓冲区从键盘录入数字
BufferedReader bufr
           = new BufferedReader(new InputStreamReader(System.in));
        // 读取缓冲区的数字字符串,然后分割进字符数组里面,作为原HashMap的键。
String line = bufr.readLine();
String[] arr = line.split("");
        // 使用HashMap通过键取值方法,完成取值,完成打印转换
for(String s:arr)
{
System.out.print(map.get(s));
}
bufr.close();
}
        }

4 个回复

倒序浏览
用数组也很方便的~
public static void main(String[] args) {
                String[] asd={"零","一","二","三","四","五","六","七","八","九",};
                System.out.println("请输入一个数字:");
                Scanner sc=new Scanner(System.in);
                String as=sc.nextLine();
                for(int i=0;i<as.length();i++){
                        System.out.print(asd[Integer.parseInt(as.charAt(i)+"")]);
                }
        }
回复 使用道具 举报 1 0
王际涛 发表于 2015-11-25 23:49
用数组也很方便的~
public static void main(String[] args) {
                String[] asd={"零","一","二","三","四", ...

不得不给你定个赞
回复 使用道具 举报
数组 点赞~
回复 使用道具 举报
没必要这么麻烦,直接数组,输入的数字0-9分别表示角标,角标所对应的元素分别表示中文的零--九

输入的数字作为字符串,调用toCharArry转成字符数组,然后判断呗,将对应的中文数字添加到字符串缓冲区打印出来即可
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马