黑马程序员技术交流社区

标题: 关于HsahMap集合的问题 [打印本页]

作者: 当我遇上你    时间: 2015-1-9 18:53
标题: 关于HsahMap集合的问题
这是我的一段代码
  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正确
作者: 杨金龙    时间: 2015-1-9 19:27
ASCII表里字符 '0' 整数是48  '1'整数是49
你拿'1'-'0' 结果得整数是1
然后再变成字符串"1"
思路是这样吧
但是你有没有想过System.out.print(map.get("in"));
中的map.get("in")表示是以"in" 为键来查询对应的值 知道不
思想应该是吧in的值变成字符串然后再以键查询对应的值
所以应该这样写map.get(in+"")
作者: 李票    时间: 2015-1-9 19:45
你求错啦,因为,map.get("in"),是求的字符串in,并非整型in。你的目的是把键传过去,你的in已经自动转换成int型了而你的map集合里的键是字符串的,所以找不到。
作者: 当我遇上你    时间: 2015-1-9 20:10
杨金龙 发表于 2015-1-9 19:27
ASCII表里字符 '0' 整数是48  '1'整数是49
你拿'1'-'0' 结果得整数是1
然后再变成字符串"1"

非常感谢,明白了,困惑半天了
作者: 当我遇上你    时间: 2015-1-9 20:13
李票 发表于 2015-1-9 19:45
你求错啦,因为,map.get("in"),是求的字符串in,并非整型in。你的目的是把键传过去,你的in已经自动转换成 ...

谢了,你们帮我大忙了,我以为给字符加上双引号就变成字符串了
作者: 李票    时间: 2015-1-9 22:05
共同进步
作者: 只会金克斯    时间: 2015-1-9 22:57
楼主能不能分享下,这个题目的需求是什么。。。
作者: 当我遇上你    时间: 2015-1-10 14:09
只会金克斯 发表于 2015-1-9 22:57
楼主能不能分享下,这个题目的需求是什么。。。

金钱转换,数字变大写,




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