String mGateway = "null,"
String mGateway2 = ",nullnull"
String mGateway3 = ",,,,null,"
mGateway.replaceAll("[null,]","");
例如,我想替换所有逗号(,)和所有单词&#34; null&#34;没有。 <{1}},System.out.println(mGateway)
和System.out.println(mGateway2)
的输出都应为空白。
答案 0 :(得分:2)
要替换确切的字词,请使用\\b
中的regex
,如下所示:
mGateway.replaceAll("\\bnull\\b|," , "");
所以这用空字符串替换null
或,
(因此""
)。
答案 1 :(得分:1)
首先,字符串是不可变的。这意味着您无法更改其状态,因此您无法更改其所持有的字符。 replace
方法的作用是创建具有基于原始String的替换字符的新String,因此您需要存储返回String的某个地方(即使在包含原始String的引用中)。
示例:
String myText = "foo bar";
// this doesn't change string held by `myText`
myText.replace("foo", "x");
// this assigns new string with replaced characters to `res`
String res = myText.replace("foo", "x");
但是你还有第二个问题。根据{{1}}语法,您似乎想要使用正则表达式,但[...]
不支持它。你想要的是replace
。
最后在正则表达式replaceAll
代表单 characters set,因此[...]
表示如果单个字符为[null,]
或{{1}或n
(第二u
无关)或l
。如果您想查找单词,则无法使用l
。您需要由,
表示的OR运算符(与许多其他语言一样)。
所以你的代码应该看起来像
[...]
我还假设您|
中没有String replaced = text.replaceAll("null|,", "");
这样的字词,因为nullable
部分也会从中删除。如果您想要在匹配另一个单词的一部分时避免出现这种情况,可以使用word boundaries \b
将该单词包围起来。这表示字母和非字母字符之间的位置(它还包括文本的开头/结尾)。
更安全的解决方案可能看起来像
text