c# - 从字符串中删除非数字字符并将数字作为 int 转换为数组
问题描述
我有一个字符串:"ABD1254AGSHF56984,5845fhfhjekf!54685"
我想遍历这个字符串中的每个字符并找到任何非数字字符并删除这些字符,直到下一个数字字符。即从我的字符串中删除所有非数字字符,但这些应该是数字是分开的指标。
输出为整数数组:
1254
56984
5845
54685
这些应该放入一个数组并转换为整数。
我在下面的尝试但这只是将所有数字作为一个而不是根据非数字字符将它们分开:
var input = "ABD1254AGSHF56984,5845fhfhjekf!54685";
var numeric = new String(input.Where(char.IsDigit).ToArray());
//This is the output of my attempt: 125456984584554685
解决方案
您可以使用正则表达式来拆分您的数字和字母,
string line = "ABD1254AGSHF56984,5845fhfhjekf!54685";
// This splits up big string into a collection of strings until anything other than a character is seen.
var words = Regex.Matches(line, @"[a-zA-Z]+");
// This gives you a collection of numbers...
var numbers = Regex.Matches(line, @"[0-9]+");
foreach (Match number in numbers)
{
Console.WriteLine(number.Value);
}
// prints
1254
56984
5845
54685
实施前应阅读正则表达式文档以便更好地理解。
推荐阅读
- java - 类 BufferedInputStream 导致调试器无法在任何断点处挂起?
- typescript - 使用映射类型的 Typescript 类型推断无法正常工作
- node.js - 我需要关于如何部署我的节点 js 应用程序的建议
- java - Spring @Email 注释传递带有 .b 的电子邮件是否有效?
- javascript - 在 ASP.NET CORE 中存储表单数据而不提交的好方法
- java - 如何通过 REST 配置 SSL?
- material-ui - 如何让键盘选项卡访问 Material UI 中存在的链接选择
- java - 无法创建到 Test Container for DB2 的 JDBC 连接
- keycloak - 在 Keycloak 13/14 中获取客户端密码?
- python - 使用 pandas 块大小并行化数据帧操作