C#substrings:删除前三个字符

时间:2014-02-20 13:23:39

标签: c# string substring

我有一个字符串,我想删除前三个字符。我如何使用子串进行此操作,还是有其他方法?

string temp = "01_Barnsley"
string textIWant = "Barnsley"

谢谢

4 个答案:

答案 0 :(得分:18)

您可以使用String.Substring(Int32) method

  

从此实例中检索子字符串。子字符串从a开始   指定的字符位置并继续到字符串的末尾。

string textIWant = temp.Substring(3);

这是 demonstration

作为替代方案,您也可以使用String.Remove method(Int32, Int32) method

  

返回一个新字符串,其中包含指定数量的字符   从指定位置开始的当前实例已被删除。

string textIWant = temp.Remove(0, 3);

这是 demonstration

答案 1 :(得分:3)

您可以使用String.Substring Method (Int32)

string textIWant = temp.Substring(3);

String.Remove Method (Int32, Int32)

string textIWant = temp.Remove(0,3);

答案 2 :(得分:1)

如果数据存在模式,可以使用它来使用正则表达式提取所需内容。

因此,如果有人知道有数字(\d正则表达式为数字,而1或更多带有+)后跟一个下栏;这是要排除的模式。现在我们通过使用( )符号表示我们想要组匹配来告诉解析器我们想要捕获的内容。在该子组中,我们说使用.+捕获所有内容。句点(.)表示任何字符,之前看到的+表示1或更多。

整个模式的完全匹配(不是我们想要的)被归类为索引零。我们希望索引1处的第一个子组匹配,这是我们的数据。

Console.WriteLine (Regex.Match("01_Barnsley",   @"\d+_(.+)").Groups[1].Value); // Barnsley
Console.WriteLine (Regex.Match("9999_Omegaman", @"\d+_(.+)").Groups[1].Value); // Omegaman

请注意我们如何超过两位数而不必担心?由于数字增长,子字符串可能会失败,因为我们的模式中具有灵活性,因此正则表达式解析器不是问题。

摘要

如果数据存在明显的模式,并且数据可能会发生变化,请使用正则表达式。最小的学习曲线可以获得丰厚回报。如果你真的只需要一个不变的特定点,就可以使用子串。

答案 3 :(得分:0)

使用LINQ的解决方案:

string temp = "01_Barnsley";
string textIWant = new string(temp.Skip(3).ToArray());