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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 当我遇上你 中级黑马   /  2015-1-9 18:52  /  1117 人查看  /  4 人回复  /   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正确

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1

查看全部评分

4 个回复

倒序浏览
本帖最后由 Gonnaloveu 于 2015-1-9 20:25 编辑

你get的不是int变量in, 而是  字符串  "in"   是个常量啊, 他是拿  "in" 这个键找的 .不知道你明白没, 改成map.get(str.substring(i,i+1))就好了

回复 使用道具 举报
楼上正解啊
回复 使用道具 举报
import java.util.*;
public class Demo1 {
        public static void main(String[] args){
           Map map=new HashMap();
           map.put("0", "零");
           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", "零");
           String str="11000201010";
           for(int i=0;i<str.length();i++)
           {
               int in=str.charAt(i)-'0';
               System.out.print(map.get(in+""));//将获取到的数字转化为字符串,之后再在map查找
                          
           }
    }
}
回复 使用道具 举报
感谢版主赠与的技术分
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马