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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 当我遇上你 中级黑马   /  2015-1-9 18:53  /  2246 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

这是我的一段代码
  1. public class Test10 {

  2.         public static void main(String[] args) throws Exception{
  3.                 Map map=new HashMap();
  4.                 map.put("0", "零");
  5.                 map.put("1", "壹");
  6.                 map.put("2", "貳");
  7.                 map.put("3", "叁");
  8.                 map.put("4", "肆");
  9.                 map.put("5", "伍");
  10.                 map.put("6", "陸");
  11.                 map.put("7", "零");
  12.                 map.put("8", "零");
  13.                 map.put("9", "零");
  14.                
  15.                
  16.                 String str="11000201010";
  17.                 for(int i=0;i<str.length();i++)
  18.                 {
  19.                         int in=str.charAt(i)-'0';
  20.                         System.out.print(map.get("in"));
  21.                 }
  22.         }
  23. }
复制代码

为什么运行结果都是null呢?输出的键值key正确

7 个回复

正序浏览
只会金克斯 发表于 2015-1-9 22:57
楼主能不能分享下,这个题目的需求是什么。。。

金钱转换,数字变大写,
回复 使用道具 举报
楼主能不能分享下,这个题目的需求是什么。。。
回复 使用道具 举报
共同进步
回复 使用道具 举报
李票 发表于 2015-1-9 19:45
你求错啦,因为,map.get("in"),是求的字符串in,并非整型in。你的目的是把键传过去,你的in已经自动转换成 ...

谢了,你们帮我大忙了,我以为给字符加上双引号就变成字符串了
回复 使用道具 举报
杨金龙 发表于 2015-1-9 19:27
ASCII表里字符 '0' 整数是48  '1'整数是49
你拿'1'-'0' 结果得整数是1
然后再变成字符串"1"

非常感谢,明白了,困惑半天了
回复 使用道具 举报
你求错啦,因为,map.get("in"),是求的字符串in,并非整型in。你的目的是把键传过去,你的in已经自动转换成int型了而你的map集合里的键是字符串的,所以找不到。
回复 使用道具 举报
ASCII表里字符 '0' 整数是48  '1'整数是49
你拿'1'-'0' 结果得整数是1
然后再变成字符串"1"
思路是这样吧
但是你有没有想过System.out.print(map.get("in"));
中的map.get("in")表示是以"in" 为键来查询对应的值 知道不
思想应该是吧in的值变成字符串然后再以键查询对应的值
所以应该这样写map.get(in+"")
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马