C#实现XML解析时为含斜杠的地址字段添加方括号
C#处理地址字段的斜杠格式化需求
看起来你现在需要处理XML解析后的地址字段,要求带斜杠的地址用方括号包裹对吧?先说说你现有代码里的小问题:你写的address = line.Split('/')[14]+line;逻辑不太对,这样会把拆分后的第15个元素和原字符串拼接,肯定不是你要的原始地址;而且用List来插括号的方式也绕远路了,完全没必要这么复杂。
我给你整理了更简洁且逻辑正确的代码方案:
第一步:正确提取地址字段
首先得确保你从line里拿到正确的原始地址,避免索引越界的问题:
// 先按斜杠拆分字符串,避免直接取索引导致的数组越界异常 string[] lineParts = line.Split('/'); string rawAddress = string.Empty; // 检查拆分后的数组长度是否足够取到第14个索引(索引从0开始) if (lineParts.Length > 14) { rawAddress = lineParts[14]; }
第二步:根据斜杠存在情况格式化地址
接下来判断地址是否包含斜杠,按需包裹方括号:
string formattedAddress; // 判断原始地址是否包含斜杠 if (rawAddress.Contains("/")) { // 用字符串插值快速包裹方括号 formattedAddress = $"[{rawAddress}]"; } else { // 没有斜杠就保持原地址不变 formattedAddress = rawAddress; } // 之后把格式化后的地址加入列表或者存入数据库 List<string> addressList = new List<string>(); addressList.Add(formattedAddress);
补充说明
- 如果你确定
line.Split('/')[14]一定能拿到有效地址(不会出现数组长度不够的情况),可以简化提取步骤,但加个长度判断能让代码更健壮,避免运行时抛出IndexOutOfRangeException。 - 字符串插值
$"[{rawAddress}]"是C# 6及以上版本支持的语法,如果你用的是更早的版本,可以换成string.Format("[{0}]", rawAddress)。
内容的提问来源于stack exchange,提问作者sumit kumar pandey
相关产品推荐
相关产品推荐

