You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从带连字符的字符串提取数字并存入数组或列表?

字符串格式调整与数字提取解决方案

一、调整字符串到目标格式

要把原字符串"100-0-6-7-6-10-8-"转换成"-100--0--6--7--6--10--8-",可以通过字符串替换快速实现:

string original = "100-0-6-7-6-10-8-";
// 先移除末尾多余的'-'
string trimmedStr = original.TrimEnd('-');
// 替换分隔符并补全首尾的'-'
string targetStr = "-" + trimmedStr.Replace("-", "--") + "-";
// 此时targetStr即为目标格式:"-100--0--6--7--6--10--8-"

二、提取数字到数组/列表

直接处理原字符串(最简便)

你之前用Split的方式本身就能正确提取所有数字,“覆盖0、10、100”应该是后续逻辑的问题,Split本身不会丢失数据:

string original = "100-0-6-7-6-10-8-";
char[] delimiters = { '-' };
// 分割得到纯数字字符串数组
string[] numStrArray = original.Split(delimiters, System.StringSplitOptions.RemoveEmptyEntries);
// 转成List<string>
List<string> numStrList = new List<string>(numStrArray);
// 如果需要整数类型数组
int[] numIntArray = Array.ConvertAll(numStrArray, int.Parse);

处理调整后的目标字符串

如果一定要基于调整后的字符串提取,只需换成分隔符为"--"即可:

string targetStr = "-100--0--6--7--6--10--8-";
// 用"--"分割,过滤空条目
string[] numStrArray = targetStr.Split(new[] { "--" }, System.StringSplitOptions.RemoveEmptyEntries);
// 移除第一个元素的前导'-'
numStrArray[0] = numStrArray[0].TrimStart('-');
// 后续转List或整数数组的方式和上面一致

内容的提问来源于stack exchange,提问作者RᗅNDY̳ XD

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 10:30:50