如何在java中替换字符串

jav*_*ser 0 java string replace

我有以下代码

String rplaceString="John = Max and Jing => Sira then nothing";
String replaced=rplaceString.replace("=", "==").replace("=>", "=>");
System.out.println("REPLACE STRINF==>>>>>>>>"+replaced);
Run Code Online (Sandbox Code Playgroud)

预期的输出字符串像这样:

String expectedString="John == Max and Jing => Sira then nothing";
Run Code Online (Sandbox Code Playgroud)

如果我做上面的方法,输出看起来像:

REPLACE STRINF == >>>>>>>> John == Max和Jing ==> Sira然后什么也没有

那么,如何在预期的字符串中替换上面的字符串.

编辑:更改字符串像这样: John = Max和Jing => Sira然后什么也没有

要么

John = Max和Jing => Sira然后什么也没有

要么

John = Max和Jing => Sira然后什么也没有

Bry*_*yan 7

解决问题的一种简单方法是=在替换中添加空格:

String replaced=rplaceString.replace(" = ", " == ")
Run Code Online (Sandbox Code Playgroud)

那么你只会匹配独立=而不是箭头.

编辑:

更全面的答案:

String s = "John=Max and Jing=>Sira then nothing";

String t = s.replaceAll("(?<=.)=(?!>)"," == ");
t = t.replaceAll("=>", " => ").replaceAll("\\s+", " ");
System.out.println(t);
Run Code Online (Sandbox Code Playgroud)