解析字符串并提取数字和字母的最简单方法是什么?我的字符串可以是以下格式的(数字\、字母或字母),例如"10A“、"B5”、"C10“、"1G”等等。
我需要提取两个部分,即"10A“-> "10”和"A“。
更新:感谢所有优秀的答案
发布于 2009-04-09 16:30:48
最简单的方法可能是使用正则表达式。
((?<number>\d+)(?<letter>[a-zA-Z])|(?<letter>[a-zA-Z])(?<number>\d+))然后,可以将其与字符串匹配,并从组中提取值。
Match match = regex.Match("10A");
string letter = match.Groups["letter"].Value;
int number = int.Parse(match.Groups["number"].Value);发布于 2009-04-09 16:31:46
最简单和最快的是使用简单的字符串操作。使用IsDigit方法检查字母所在的位置,并将字符串的其余部分解析为数字:
char letter = str[0];
int index = 1;
if (Char.IsDigit(letter)) {
letter = str[str.Length - 1];
index = 0;
}
int number = int.Parse(str.Substring(index, str.Length - 1));发布于 2009-04-09 16:34:40
只是为了与众不同:
string number = input.Trim("ABCDEFGHIJKLMNOPQRSTUVWXYZ".ToCharArray());
string letter = input.Trim("0123456789".ToCharArray());https://stackoverflow.com/questions/734937
复制相似问题