【问题标题】:Java Split String into Hashmap [closed]Java将字符串拆分为Hashmap [关闭]
【发布时间】:2015-10-31 22:27:18
【问题描述】:

我有一个字符串:

String text = "a|3|bad1|0|b|6|bad1|1|c|5|bad2|1|d|2|bad1|0|e|1|bad2|0"

我想用“|”分割这个字符串,将它保存到一个HashMap中,但是跳过“bad”和它的值。请注意,“坏”词可能是“bad1”或“bad2”。结果 HashMap 将如下所示:

a:3
b:6
c:5
d:2
e:1

我是一名 Python 程序员,对 Java 很陌生。谢谢!

【问题讨论】:

  • 您使用的是 Java 8 吗? (JDK 1.8)
  • 是什么阻止你完成你的代码?
  • 到目前为止你已经尝试过什么?
  • 小心 Cos64 答案。该代码可能会产生异常,您需要验证 tokens.length 是否为偶数,否则 tokens[i + 1] 可能指向 null。 – Gatunox 15 秒前编辑

标签: java regex string split hashmap


【解决方案1】:

试试这个:

String text = "a|3|bad1|0|b|6|bad1|1|c|5|bad2|1|d|2|bad1|0|e|1|bad2|0";
String[] tokens = text.split("\\|");
Map<String, String> pairs = new HashMap<>();
for(int i = 0; i < tokens.length; i+=2) {
    if(!tokens[i].startsWith("bad")) {
        pairs.put(tokens[i], tokens[i + 1]);
    }
}

您可能想查看StringMap 的API。

【讨论】:

  • 你的代码可能会产生异常,你需要验证tokens.length是偶数,否则tokens[i + 1]可能指向null。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多