【问题标题】:How to get the numeric position of char's [duplicate]如何获取char的数字位置[重复]
【发布时间】:2017-02-10 02:11:55
【问题描述】:

假设我们有一堆字符:'s', 'w', 'e', 's', 't', 'h'

我们如何查看我们是否通过(char)scanner.nextLine().charAt(0); 输入了一个字符 数字是(1,2,3,4,5,6)的位置。例如,如果我输入w,我会返回2,或者如果我输入s,我会返回14

这是我已有的代码:

   Scanner letter= new Scanner(System.in);
   System.out.print("Type a character:");
   char let= letter.nextLine().charAt(0);

   char[] word = {'s', 'w', 'a', 'g', 'w' };
   System.out.print();

【问题讨论】:

  • 为什么不用String word="swagw" 而不是Char Array
  • 老师说我们需要用char

标签: java arrays char


【解决方案1】:

你可以使用地图简单地做到这一点

        Map<Character,List<Integer>> map = new HashMap<Character,List<Integer>>();

然后迭代数组中的字符并将它们的位置添加到地图中,键为这样的字符

         if(map.get(word[i]) == null)//i is the index of the character
                    map.put(word[i],new ArrayList<Integer>());
          map.get(word[i]).add(i);

然后当你插入你的角色时,你会得到相关列表并打印它的内容

【讨论】:

  • 这远非简单,考虑到问题的基本性,我认为 OP 还没有为此做好准备,也不认为它适合他们的需求。
  • 我尊重你的意见,也会投票给你评论
  • 这确实太复杂了,我无法处理:p,我一周前刚开始使用 java,谢谢您的回答!
  • 在我看来,你不需要你能理解的答案,你需要一个能让你走上正确道路的答案,最终你会明白的。
  • 我知道我必须努力学习,但我知道我真的不知道如何使用您的解决方案。你能善意地调整它,以便我可以使用它然后理解它吗?问候,汤姆
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-26
  • 2013-06-05
  • 1970-01-01
  • 1970-01-01
  • 2014-06-23
相关资源
最近更新 更多