查找字母串中的第一个字符

时间:2014-06-04 04:21:21

标签: c# string char

您好我正在试图弄清楚如何查看字符串,找到第一个字母,然后从该索引点开始删除。

例如

string test = "5604495Alpha";

我需要查看此字符串,找到"A"并从

上删除

由于

3 个答案:

答案 0 :(得分:14)

有几种方法可以做到这一点。两个例子:

string s = "12345Alpha";
s = new string(s.TakeWhile(Char.IsDigit).ToArray());

或者更准确地说,正如Baldrick在评论中指出的那样,找到第一个字母:

s = new string(s.TakeWhile(c => !Char.IsLetter(c)).ToArray());

或者,你可以写一个循环:

int pos = 0;
while (!Char.IsLetter(s[pos]))
{
    ++pos;
}
s = s.Substring(0, pos);

答案 1 :(得分:0)

执行此操作的方法很少:

int getIndexOfFirstLetter(string input) {
    var index = 0;
    foreach (var c in input)
        if (char.IsLetter(c))
            return index;
        else
            index++;

    return input.Length;
}

用法:

var test = "5604495Alpha";

var result = test.Substring(0, getIndexOfFirstLetter(test));

// returns 5604495

答案 2 :(得分:0)

你应该解决这个问题,以确保匹配,并确保索引0处有一个值......但是出于演示目的,它适用于此示例案例。

string test = "5604495Alpha";
var test2 = test.Remove(test.IndexOf(
    System.Text.RegularExpressions.Regex.Match(test, "[A-Za-z]").Index));
// test2 = "5604495"