C# - 如何删除String的特定部分?

时间:2012-12-15 18:48:18

标签: c# string

作为this问题

的延续

假设我有一个字符串:

String myString = "violet are blue|roses are red|this is a terrible poet";

我想修剪它说“玫瑰红了”的特定部分。这样它就变成了:

myString = "violet are blue|this is a terrible poet";

4 个答案:

答案 0 :(得分:3)

您可以使用String.Replace方法

string input = "violet are blue|roses are red|this is a terrible poet";
string expected = "violet are blue|this is a terrible poet";
string actual = input.Replace("roses are red|", String.Empty);        

Debug.Assert(expected == actual);

答案 1 :(得分:2)

我认为您要使用|字符来查找要删除的内容。

使用|获取第一个IndexOf的索引,然后获取第二个,然后使用Remove获取字符串的其余部分:

int index1 = myString.IndexOf('|');
int index2 = myString.IndexOf('|', index1 + 1);
myString = myString.Remove(index1, index2 - index1);

答案 2 :(得分:1)

使用分割:

const string myString = "violet are blue|roses are red|this is a terrible poet";
const char itemToSplitOn = '|';

var arr = myString.Split(itemToSplitOn);
var newString = arr[0] + itemToSplitOn + arr[2];

答案 3 :(得分:0)

如果没有正则表达式的答案,问题就不会是完整的问题:)

String myString = "violet are blue|roses are red|this is a terrible poet";
var newstr = Regex.Replace(myString, @"\|.+?\|", "|");