首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >字符串解析,提取数字和字母

字符串解析,提取数字和字母
EN

Stack Overflow用户
提问于 2009-04-09 16:23:05
回答 6查看 10.5K关注 0票数 5

解析字符串并提取数字和字母的最简单方法是什么?我的字符串可以是以下格式的(数字\、字母或字母),例如"10A“、"B5”、"C10“、"1G”等等。

我需要提取两个部分,即"10A“-> "10”和"A“。

更新:感谢所有优秀的答案

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-04-09 16:30:48

最简单的方法可能是使用正则表达式。

代码语言:javascript
复制
((?<number>\d+)(?<letter>[a-zA-Z])|(?<letter>[a-zA-Z])(?<number>\d+))

然后,可以将其与字符串匹配,并从组中提取值。

代码语言:javascript
复制
Match match = regex.Match("10A");
string letter = match.Groups["letter"].Value;
int number = int.Parse(match.Groups["number"].Value);
票数 13
EN

Stack Overflow用户

发布于 2009-04-09 16:31:46

最简单和最快的是使用简单的字符串操作。使用IsDigit方法检查字母所在的位置,并将字符串的其余部分解析为数字:

代码语言:javascript
复制
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));
票数 6
EN

Stack Overflow用户

发布于 2009-04-09 16:34:40

只是为了与众不同:

代码语言:javascript
复制
string number = input.Trim("ABCDEFGHIJKLMNOPQRSTUVWXYZ".ToCharArray());
string letter = input.Trim("0123456789".ToCharArray());
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/734937

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档