我有一个字符串,其中包含 3 次出现的单词“TEST”。每个单词后面都跟着 ^,我需要检查 ^ 的第 2 次和第 3 次出现之间的内容是否为空白,如果是空白/空,则进一步搜索以查看 ^ 的第 5 次和第 6 次出现之间的内容是否为“”
如果是“”,则将其替换为空白/空
只要找到 TEST 单词,我就需要重复此逻辑检查。
示例:
现有字符串:
aaaa^
TEST^x^^y^z^""^cccc^bbb^
bbbb^
TEST^p^^q^r^""^lll^mmm^
TEST^P^X^q^n^""^hhh^ttt^
预期字符串:
aaaa^
TEST^x^^y^z^^cccc^bbb^
bbbb^
TEST^p^^q^r^^lll^mmm^
TEST^NOT EMPTY THUS IGNORE^X^q^n^""^hhh^ttt^
我该怎么做?非常感谢任何帮助。
最佳答案
^
是分隔符,因此您可以将字符串拆分为标记:
String[] tokens = text.split("\\^", -1);
然后搜索该 token 数组,查找TEST
,应用您需要的任何逻辑,并根据需要更新 token 。
最后,输出更新后的标记列表,以 ^
分隔:
for (int i=0; i<tokens.length; i++) {
if (i > 0) {
System.out.print("^");
}
System.out.print(tokens[i]);
}
System.out.println();
这样做,你正在实现的算法会更加清晰。
关于java正则表达式搜索替换问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3782522/