gpt4 book ai didi

java - 在java中解析一个字符串

转载 作者:行者123 更新时间:2023-11-30 09:29:45 24 4
gpt4 key购买 nike

我从服务器获取以下字符串,仅以空格分隔。 (换行只是为了可读性,“XX 是占位符,长度可以变化。方括号中的东西的长度也可以变化。

字符串 1:

status:ok [XXX][a=XXX b=XXX c=XXX d=XXX e=0 f=XXX g=XXX h=XXX i=XXX j=XXX 
k=XXX l=XXX m=XXX n=[[XXX][XXX]] p=[[XXX][XXX][XXX][XXX][XXX][XXX][XXX]]]
end:end

字符串 2:

status:ok [XXX][a=XXX b=XXX  c=XXX d=XXX d2=XXX e=XXX  f=XXX g=XXX h=XXX i=XXX j=XXX 
k=XXX l=XXX m=XXX n=[[XXX][XXX]] p=[[XXX][XXX][XXX][XXX][XXX][XXX][XXX]]]
end:end

方括号“[]”中的所有部分都可以包含或多或少的“[]”- 内部“[]”中的元素和单词的长度可以变化。我需要 HashMap 中的那些 a、b、c、d、e 等,但在我这样做之前,我需要以某种方式解析它。

如何在 Java 中有效地解析这个字符串?

我搜索并发现了很多网站和主题,其中人们建议除了“正则表达式解析”之外还有一种叫做“键值解析”的东西,但不幸的是,关于“键值解析”的信息很少。

编辑:最后我想像这样将这些值存储在 Hashmap 中:

HashMap<String,Object> myHashMap = new HashMap();
myHashMap.put(a, XXX);
....
myHashMap.put(p,array-of-all-[XXX]);

最佳答案

你可以简单地这样做,它会打印出你的 a,b,c ..

  String s ="status:ok [XXX][a=XXX b=XXX c=XXX d=XXX e=0 f=XXX g=XXX h=XXX i=XXX j=XXX k=XXX l=XXX m=XXX n=[[XXX][XXX]] p=[[XXX][XXX][XXX][XXX][XXX][XXX][XXX]]] end:end".replaceAll("end:end", "");

String [] ss = s.split("=");
HashMap<Character,Object> myHashMap = new HashMap();
try{
for(int i=0;i<ss.length;i++){

myHashMap.put(ss[i].charAt(ss[i].length()-1), ss[i+1].substring(0, ss[i+1].length()-1).trim());

}

}catch(Exception e){
// do nothing
}
System.out.println(myHashMap);
}

关于java - 在java中解析一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13543181/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com