gpt4 book ai didi

c# - 使用linq拆分数字和字符串

转载 作者:太空宇宙 更新时间:2023-11-03 19:13:06 24 4
gpt4 key购买 nike

我有一个字符串,它的第一部分是字符串,最后一部分是数字,如下所示:

ahde7394

所以我想得到的是:

阿德

7394

我想先提取字符串,然后从字符的最后位置获取数字,直到字符串结尾,所以我认为可以通过某种方式使用索引器:

var stringQuery = NameComp.Select((str,index) => new {myStr=str, position=index})
.Where(c => !Char.IsDigit(c.myStr)).Select((ch,pos) => new { newStr=ch, pos=pos} );

然后我可以做:

1) 获取字符串:stringQuery.newStr

2)获取数字:stringQuery.Skip(stringQuery.pos).Select(d => d);

但它不起作用,在获取 stringQuery 后我无法访问它的项目,因为它是匿名类型....

有什么想法吗?

使用LINQ的解决方案,猜测str="ahde7394":

string letters = new string(str.TakeWhile(c => Char.IsLetter(c)).ToArray());

和数字:

string number = new string(str.Skip(letters.Length).TakeWhile(c => Char.IsDigit(c)).ToArray());

或者更好地猜测最后一部分是一个数字:

   string number = str.Substring(name.Length);

最佳答案

我同意 dtb 的观点,即 LINQ 可能不是正确的解决方案。

Regex 是另一种选择,假设您的字符串可以比您提供的更多可变。

var str = "ahde7394";

var regex = Regex.Match(str, @"([a-zA-Z]+)(\d+)");

var letters = regex.Groups[1].Value; // ahde
var numbers = regex.Groups[2].Value; // 7394

关于c# - 使用linq拆分数字和字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19076527/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com