Java将字符串拆分为Hashmap

Java将字符串拆分为Hashmap,java,regex,string,split,hashmap,Java,Regex,String,Split,Hashmap,我有一个字符串: 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非常陌生。谢谢 试试这个: String text = "a|3|bad1|0|b|6|bad1|

我有一个字符串:

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非常陌生。谢谢

试试这个:

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]);
    }
}
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(“\\\\”);
映射对=新的HashMap();
for(int i=0;i

您可能需要查看和的API。

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