gpt4 book ai didi

java - 如何匹配由 "|e|"符号分割的字符串

转载 作者:行者123 更新时间:2023-11-30 02:41:48 26 4
gpt4 key购买 nike

我编写了一个程序,用 |o||e| 符号分割字符串。

这是我的整个字符串(我想要处理):

code|e|0.07610 |o| p|e|0.02225 |o| li|e|0.02032 |o| applet|e|0.01305 |o| pre|e|0.01289

我编写了一个实用函数来解析上面的字符串,以下是该实用函数的一部分:

String [] trs = tgs[1].split("[^ |o| ]"); //tgs[1] have the whole string
for (int i=0 ; i<9; i++) {
String t = trs[i].split("[^|e|]")[0];
e.add(new ProbTranslate(t, Double.parseDouble(trs[i].split("[^|e|]")[1])));
}

但这似乎是不正确的(因为我调试了程序然后得到了错误的结果)。我觉得我的错误在于不正确的正则表达式部分。所以我寻找一个合适的正则表达式来解析上面的字符串。

如有任何帮助,我们将不胜感激。谢谢。

最佳答案

为了在正则表达式中引用特殊字符,Java提供了一个方法:java.util.regex.Pattern#quote

适用于上面的示例,这可以例如导致

import java.util.regex.Pattern;

public class Main {

public static void main(String[] args) {
final String[] split1 = "code|e|0.07610 |o| p|e|0.02225 |o| li|e|0.02032 |o| applet|e|0.01305 |o| pre|e|0.01289".split(Pattern.quote(" |o| "));

for (int i = 0; i < split1.length; ++i) {
final String name = split1[i];
final String[] split2 = name.split(Pattern.quote("|e|"));

for (int j = 0; j < split2.length; ++j) {
System.out.println(split2[j]);
}

System.out.println("");
}
}
}

输出:

code
0.07610

p
0.02225

li
0.02032

applet
0.01305

pre
0.01289

关于java - 如何匹配由 "|e|"符号分割的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41458444/

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