gpt4 book ai didi

java - 在 Java 中分割字符串,并在字符串部分中使用潜在的分割字符

转载 作者:太空宇宙 更新时间:2023-11-04 06:08:08 27 4
gpt4 key购买 nike

如何将此字符串格式拆分为多个部分:

message_type={any_text}&message_number={digits}&code={digits}&id={digits}&message={any_text}&timestamp={digits_with_decimal}

message={any_text} 部分中,{any_text} 可能包含 &=,因此无法通过 &= 进行字符串拆分

消息部分的顺序可能会打乱,也可能不按此顺序。我认为可以为解决方案提取一个模式, ={the_text_needed}& 但这不适用于字符串的最后部分,因为末尾不会有 &

最佳答案

我希望这会起作用 -

String originalString = "message_type={a&=b}&message_number={1}&code={2}&id={3}&message={a&=b}&timestamp={12}";
Map<String, String> resultMap = new HashMap<String, String>();
String[] splitted1 = originalString.split("&+(?![^{]*})");
for (String str : splitted1) {
String[] splitted2 = str.split("=+(?![^{]*})");
resultMap.put(splitted2[0], splitted2[1]);
splitted2 = null;
}

如果参数值没有括在花括号内,那么它真的很困难。我可以想到一个解决方案,但我不知道它是否会在某些情况下崩溃 -

String originalString = "message_type=msgTyp&message_number=1&code=2&message=a&=b&timestamp=12";
String[] predefinedParameters = {"message_type", "message_number", "code", "message", "timestamp"};
String delimeter = "###";

for (String str : predefinedParameters) {
originalString = originalString.replace(str+"=", delimeter+str+"=");
}

originalString = originalString.substring(delimeter.length());

String[] result = originalString.split("&"+delimeter);

关于java - 在 Java 中分割字符串,并在字符串部分中使用潜在的分割字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29057440/

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