如何从Java语句中替换特定字符串?

时间:2019-02-18 15:29:24

标签: java api

我正在尝试从将根据API响应please find the desired output动态更改的语句中替换特定字符串。

例如:  “ statement”:“ 5559 AND(5563 AND(5565 AND 5564))AND 5561”

场景1:  要替换的字符串-5565

预期输出-“声明”:“ 5559 AND(5563 AND 5564)AND 5561”

方案2:  要替换的字符串-5563

预期输出-“声明”:“ 5559 AND(5565 AND 5564)AND 5561”

1 个答案:

答案 0 :(得分:0)

java String类具有一个replaceFirst方法,该方法带有两个参数:正则表达式和要替换与表达式匹配的第一个位置的字符串。

在此特定示例中,您可以然后做一些简单的事情:

String stringToReplace = "5565";
String replacement = "5563";
String newString = existingString.replace(stringToReplace, replacement);

如何设置这些字符串取决于您。我只是在演示如何使用该方法。

但这是有趣的部分。假设stringToReplace是5。您真正的意思是,如果5作为标记出现在字符串中。您并没有更改所有5位数,仅将“ AND 5 OR 3”更改为“ AND 17 OR 3”,但是如果您具有“ OR 55”,则不希望将其变为“ OR 1717”,对吗?

因此,如果您担心这些情况,则正则表达式将变得更加复杂。

您可以使表达式“ 5”(前后的空格),但不适用于“ AND(5 OR 3)”或“ AND(3 OR 5)”,即使5位于字符串的开头或结尾。

我需要一些时间来找出最佳的正则表达式。我建议您阅读JavaDocs,然后开始尝试。这将需要您付出一些努力。

还是不用担心那部分。