【发布时间】:2018-06-28 03:05:02
【问题描述】:
在一个非常简单的问题上,我有一个奇怪的行为。
我有一个包含很多空字符串的字符串:
“a;b;c;null;null;null;null;null;null;null;null;null;null”
我使用此方法删除:
public String replaceAllNull(String s) {
s = s.replaceAll(";null;", ";;");
//if first item = null remove it
if(s.startsWith("null;")) {
s = s.substring(4,s.length());
}
//if last item = null remove it
if(s.endsWith(";null")) {
s = s.substring(0,s.length()-4);
}
return s;
}
它工作正常,直到我的字符串变大,我看到这个奇怪的输出
“a;b;c;;null;;null;;null;;null;;”
它只删除了两次出现中的一次。
我想我可以理解,在一个替换程序中会跳过一个“;”然后我的正则表达式“;null;”无法识别第二个null。但我不明白为什么会这样?
【问题讨论】:
-
拆分
';',删除"null"字符串,重新加入';'
标签: java string replaceall