我有string beginString = "apple|fruitsapple|turnip";
我想做的只是用芒果代替苹果,而不是用fruitapple代替。
string fixedString = beginString.Replace("apple","mango");
这不起作用,因为它取代了apple和fruitsapple。
有什么想法吗?
答案 0 :(得分:3)
beginString = "|" + beginString + "|";
fixedString = beginString.Replace("|apple|","|mango|");
答案 1 :(得分:3)
这不能按照您所说的方式完成,因为它会将整个字符串视为字符串。您可以通过|进行拆分你已经使用过或者在列表中有字符串并使用equals然后替换它。
String[] words = beginString.Split("|");
现在替换单词。适用于任何场景。
答案 2 :(得分:1)
最近我能得到。是否会建议正则表达,但这并不总是按你的意愿行事。你必须首先拆分字符串,然后重新制作它。
string searchString = "apple";
string newString = "mango";
string beginString = "apple|fruitsapple|turnip";
string[] array = beginString.Split('|');
foreach (var item in array)
{
if (item == searchString)
item.Replace(searchString, newString);
}
string recreated = "";
new List<string>(array).ForEach(e => recreated += e + "|");
recreated.TrimEnd('|');
答案 3 :(得分:1)
string newstr = Regex.Replace("apple|fruitsapple|turnip", @"\bapple\b", "mango");
答案 4 :(得分:1)
LINQ风格的其他答案的变化:
string fixedString = string.Join("|",
beginString
.Split('|')
.Select(s => s != "apple" ? s : "mango"));