【问题标题】:How can I use HashMap values to form a String?如何使用 HashMap 值形成字符串?
【发布时间】:2016-03-01 03:59:43
【问题描述】:

我有以下代码将特定的字符串字符映射为字母:

 String a = "94466602777330999666887770223377778077778 883 336687777";
    String[] tokens = a.split("(?<=(.))(?!\\1)");
    Map<String, String> hmap = new HashMap<String, String>();

    hmap.put("2", "A");
    hmap.put("22", "B");
    hmap.put("222", "C");
    hmap.put("3", "D");
    hmap.put("33", "E");
    hmap.put("333", "F");
    hmap.put("4", "G");
    hmap.put("44", "H");
    hmap.put("444", "I");
    hmap.put("5", "J");
    hmap.put("55", "K");
    hmap.put("555", "L");
    hmap.put("6", "M");
    hmap.put("66", "N");
    hmap.put("666", "O");
    hmap.put("7", "P");
    hmap.put("77", "Q");
    hmap.put("777", "R");
    hmap.put("7777", "S");
    hmap.put("8", "T");
    hmap.put("88", "U");
    hmap.put("888", "V");
    hmap.put("9", "W");
    hmap.put("99", "X");
    hmap.put("999", "Y");
    hmap.put("9999", "Z");
    hmap.put("1", ".");
    hmap.put("0", " ");

在做 HashMap 之后,我想返回一个字符串,它将我以前的字符串 "94466602777330999666887770223377778077778 883 336687777" 转换为 "WHO ARE YOUR BEST STUDENTS"

【问题讨论】:

  • 如何区分4 (G) 和44 (H)?
  • 您已经有了一个很好的提示,它将变量a 拆分为tokens。只需迭代它并使用hmap.get() 获取相应的字符串
  • Jecod,我认为你没有理解 Tim 的问题。当您打算从 HashMap 中检索字母时,通常会调用 map.get(key),其中。因此,如果您正在迭代您的数字字符串。你怎么知道什么时候得到 key=4 或 key=44 或 key=444?你必须有某种方法来做出这个决定。如果你想要体面的帮助......你最好分享它。
  • @pczeus 我的方法将拆分数字(在字符串中)作为数组返回,例如 4 、44、444 等。
  • @pczeus & Tim 我只是想说我的问题不是那么琐碎,不值得寻求帮助,但我仍然投反对票。今天刚加入并作为新用户对我来说似乎不公平。我仍然认为蒂姆没有理解我的问题。

标签: java string hashmap


【解决方案1】:

正如您所提到的,您已经将输入划分为字符串数组。

StringBuilder builder = new StringBuilder();

for (String s: tokens) {           
    builder.append(hmap.get(s));
}

String result = builder.toString();

【讨论】:

  • 那行不通。返回:谁是你最好的 STnullUDnullENTS。使用的正则表达式似乎是一个小问题,但与您的答案无关。
  • 为什么要投反对票?问题是如何从地图中获取价值。
  • 他已经写好了,他有字符串数组,他只是不知道如何使用map。
  • @Jekob - 如果您将其添加到地图中的条目中,Sanky 的解决方案将完美运行:hmap.put(" ","");
【解决方案2】:

您可以使用 StringBuilder 类来形成字符串。

【讨论】:

    猜你喜欢
    • 2015-03-07
    • 1970-01-01
    • 1970-01-01
    • 2014-01-15
    • 1970-01-01
    • 2021-12-05
    • 1970-01-01
    • 2011-01-01
    相关资源
    最近更新 更多