一尘不染

Java-字符串替换方法不替换字符

java

我有一个以字符串形式传递的句子,我正在对单词“ and”进行替换,我想用“”替换它。而且它不是用空格替换“和”一词。以下是我的逻辑示例。而当我调试此逻辑时,逻辑确实落入了句子。

String sentence = "Define, Measure, Analyze, Design and Verify"
if (sentence.contains("and")){
    sentence.replace("and", " ");
}

这里有我想念的东西吗?


阅读 747

收藏
2020-02-25

共1个答案

一尘不染

而当我调试此逻辑时,逻辑确实落入了句子。

是的,然后你放弃返回值。

Java中的字符串是不可变的-当你调用时replace,它不会更改现有字符串的内容-它会返回经过修改的新字符串。所以你要:

sentence = sentence.replace("and", " ");

这适用于所有的字符串(方法substring,toLowerCase等等)。它们都不更改字符串的内容。

请注意,你实际上并不需要在某种情况下执行此操作-毕竟,如果该句子不包含”and”,执行替换也不会造成损害:

String sentence = "Define, Measure, Analyze, Design and Verify";
sentence = sentence.replace("and", " ");
2020-02-25