查找字符串中第一个字母
本文关键字:第一个 字符串 查找 | 更新日期: 2023-09-27 18:06:28
我正试图弄清楚如何通过字符串查看,找到第一个字符是一个字母,然后从该索引点和上删除。
例如,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"