c#如何修剪字符串

时间:2016-07-19 02:35:35

标签: c#

在字符串中修剪具有字母前缀的所有字母表的更快方法是什么。 例如,输入sting“ABC12345”,我希望仅将12345作为输出。 感谢。

4 个答案:

答案 0 :(得分:5)

请使用“char.IsDigit”,试试这个:

static void Main(string[] args)
{
    var input = "ABC12345";
    var numeric = new String(input.Where(char.IsDigit).ToArray());
    Console.Read();
}

答案 1 :(得分:2)

您可以使用Regular Expressions修剪字母前缀

var input = "ABC123";
var trimmed = Regex.Replace(input, @"^[A-Za-z]+", "");

// trimmed = "123"

replace方法的正则表达式(第二个参数)^[A-Za-z]+执行大部分工作,它使用以下规则定义要替换的内容:

^字符确保匹配仅存在于字符串的开头
[A-Za-z]将匹配任何大写或小写字母
+表示大写或小写字母将尽可能多次匹配

由于这是Replace方法,因此第三个参数用空字符串替换任何匹配。

答案 2 :(得分:2)

其他答案似乎回答了什么是最慢的方式..所以如果你真的需要最快的方法,那么你可以找到第一个数字的索引并得到子字符串:

string input = "ABC12345";
int i = 0;
while ( input[i] < '0' || input[i] > '9' ) i++;
string output = input.Substring(i);

获取值的最短方法可能是VB Val方法:

double value = Microsoft.VisualBasic.Conversion.Val("ABC12345"); // 12345.0

答案 3 :(得分:0)

你必须要正则表达式。看来你只是在找数字而不是字母。

样品:

string result =
  System.Text.RegularExpressions.Regex.Replace("Your input string", @"\D+", string.Empty);
相关问题