繁体   English   中英

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

[英]Find the first character in a string that is a letter

我想弄清楚如何查看字符串,找到第一个字母字符,然后从该索引点删除等等。

例如,

string test = "5604495Alpha";

我需要遍历这个字符串,找到"A"并从那时起删除。

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

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);

一个小方法来做到这一点:

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

您应该打破这一点以确保存在匹配,并确保索引 0 处有一个...但出于演示目的,它确实适用于此示例案例。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM