如何从带连字符的字符串提取数字并存入数组或列表?
字符串格式调整与数字提取解决方案
一、调整字符串到目标格式
要把原字符串"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
相关产品推荐
相关产品推荐

