如何拆分特定格式字符串并提取对应字段至不同数组
实现方案
1. 拆分记录到数组并格式化输出
首先用Split('|')方法将原字符串按竖线分割,得到单独的记录数组。如果需要输出每行一条记录的格式,用换行符拼接数组即可:
string s = "83#design point 1#nominal#376.879#17.498#1.0768#1780#0.8|84#design point 2#reduced speed and SG#376.879#17.498#1.0768#1000#0.5|85#design point 3#different point#107.68#20.19#0.672998#1780#0.8"; // 分割得到所有记录数组 string[] records = s.Split('|'); // 格式化为每行一条记录的字符串 string formattedOutput = string.Join(Environment.NewLine, records); // 输出formattedOutput即可得到目标格式
2. 提取指定字段到不同数组
每条记录用#分割后,字段索引从0开始计数:
- 你需要的
376.879,376.879,107.68是第4个字段,对应索引3 17.498,17.498,20.19是第5个字段,对应索引4
遍历每条记录,拆分后提取对应字段存入列表,最后转成数组即可:
List<string> targetField1 = new List<string>(); List<string> targetField2 = new List<string>(); foreach (var record in records) { string[] fields = record.Split('#'); // 增加字段数量校验,避免索引越界 if (fields.Length >= 5) { targetField1.Add(fields[3]); targetField2.Add(fields[4]); } } // 转换为数组(按需选择) string[] fieldArray1 = targetField1.ToArray(); string[] fieldArray2 = targetField2.ToArray();
说明
Split方法会按指定分隔符分割字符串,返回字符串数组- 索引从0开始计数,要对应好字段位置
- 增加字段长度校验是为了避免因数据格式异常导致的索引越界错误
内容的提问来源于stack exchange,提问作者Manish S
相关产品推荐
相关产品推荐

