字符串不替换字符

字符串不替换字符

我有一个句子是以字符串的形式传入的,我在“and”一词上做了一个替换,我想用“代替它。它不会用空格来代替“和”这个词。下面是我逻辑的一个例子。而当我调试这个逻辑时,这个逻辑就会落入Sentence.置换中。

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

这里有什么东西我遗漏了吗。


拉丁的传说
浏览 442回答 4
4回答

犯罪嫌疑人X

而当我调试这个逻辑时,这个逻辑就会落入Sentence.置换中。是的,然后放弃返回值。Java中的字符串是不可变的-当您调用replace,它不会更改现有字符串-它返回新的有修改的字符串。所以你想:sentence = sentence.replace("and", " ");这适用于全字符串中的方法(substring, toLowerCase等等)无其中更改字符串的内容。请注意,您实际上不需要在某种情况下这样做-毕竟,如果是这样的话不含"and",执行替换操作是无害的:String sentence = "Define, Measure, Analyze, Design and Verify";sentence = sentence.replace("and", " ");

湖上湖

字符串是不变意味着它们的内容不能改变。当你打电话replace(this,that)你最终得到了一个全新的字符串。如果要保留此新副本,则需要将其赋值给一个变量。您可以覆盖旧的引用(A La)。sentence = sentence.replace(this,that)或如下所示的新的参考资料:public class Test{     public static void main(String[] args) {         String sentence = "Define, Measure, Analyze, Design and Verify";         String replaced = sentence.replace("and", "");         System.out.println(replaced);     }}作为旁白,请注意,我已经删除了contains()检查一下,因为这是个不必要的呼叫。如果它不包含它,替换将无法进行任何替换。如果要替换的内容与正在检查的实际情况不同,则只需要包含该方法。

杨魅力

回值为replace..您需要分配方法的结果,这是新的String:sentence = sentence.replace("and", " ");A String在java中是不可变的。方法,如replace返回一个新的String.你的contains试验是不必要的:replace如果有不是要替换的文本的实例。

沧海一幻觉

您应该重新分配替换结果,如下所示: sentence = sentence.replace("and", " ");请注意,String类是不变,意思是全的方法返回一个新字符串,并且从不修改原来的字符串,因此调用String必须分配给变量或立即使用更改才能生效。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java