string.Replace("a", "b")会自动检查"a"是否存在吗?

4
string banana = "banana apple";
banana.Replace("apple", "pie");

如果我想用派来替换苹果,我需要这样做吗?还是需要使用以下方法?
if(banana.Contains("apple"))
    banana.Replace("apple", "pie");

如果您尝试替换一个不存在的子字符串,您认为会发生什么?它会抛出异常吗?您是否阅读了文档? - Matt Ball
1
我认为OP想要问的是在替换字符串之前是否需要检查其是否为空。答案是肯定的,否则它会抛出异常(即使字符串为空)。您可以使用StringBuilder进行替换而无需进行检查。此外,如果您不使用StringBuilder,则必须将新替换的字符串重新分配给旧字符串。 - AlexanderD
1个回答

32

你只需要阅读 msdn (或自己尝试):

返回值类型: System.String。该字符串与当前字符串等效,除了将所有 oldValue 实例替换为 newValue 外。如果在当前实例中找不到 oldValue,则该方法将返回当前实例而不进行更改。

附注:由于字符串是不可变的(无法更改实例),所以如果要更改旧值,必须重新分配新的字符串:

banana = banana.Replace("apple", "pie");

2
那回答了我的问题,非常感谢。 - Adam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接