我有一堆字符串,我循环。我想在任何带有撇号的字符串中插入撇号时插入撇号。我只是做下面的事情。
string strStatus = "l'oreal";
index = strStatus.IndexOf("'");
strStatus.Insert(index, " ' ");
我希望输出像l''oreal。但这失败了。我尝试使用转义模式
strStatus.Insert(index, " \' ");
一切都无济于事。请问我该如何实现这一目标?任何建议/帮助都非常感谢。
答案 0 :(得分:4)
字符串是不可变的。 Insert返回带有2个撇号的新字符串,它不会以任何方式修改strStatus
。您的代码只会丢弃Insert的结果。
你应该尝试: string strStatus =“l'oreal”;
index = strStatus.IndexOf("'");
string newStatus=strStatus.Insert(index, "'");
答案 1 :(得分:0)
字符串在.NET(和Java)中是不可变的,这意味着Insert
不会修改strStatus
,而是会返回一个新实例,该实例具有您之后的修改。
这样做:
String status = "L'Oreal";
status = status.Insert( status.IndexOf('\''), "'" );
答案 2 :(得分:0)
字符串在C#中是不可变的,因此它的所有方法都不会修改字符串本身 - 它们返回修改后的副本。这应该有效:
strStatus = strStatus.Insert(index, " ' ");