C#校验字符串是否为整数 实现XXXX/XX格式案件号标准化处理
解决方案
核心修改点
- 新增拆分结果长度校验:确保输入仅包含1个
/,拆分后刚好得到2个片段 - 替换
Int32.Parse为Int32.TryParse做安全转换,避免非数字内容抛出运行时异常,转换失败直接返回格式错误 - 兼容空片段场景:对应示例中
/的输入,空片段默认按0处理 - 保留原长度校验逻辑,不符合要求的内容调用
badLines记录
修改后代码
public static string Validate_Cc(string CourtCase) { string[] parts = CourtCase.Split('/'); // 校验输入仅包含1个分隔符 if (parts.Length != 2) { badLines(CourtCase); return "FORMAT ERROR"; } // 校验并转换第一段数字 int number1; if (!int.TryParse(parts[0], out number1)) { // 空内容特殊处理为0 if (string.IsNullOrWhiteSpace(parts[0])) { number1 = 0; } else { badLines(CourtCase); return "FORMAT ERROR"; } } // 校验并转换第二段数字 int number2; if (!int.TryParse(parts[1], out number2)) { if (string.IsNullOrWhiteSpace(parts[1])) { number2 = 0; } else { badLines(CourtCase); return "FORMAT ERROR"; } } // 保留原长度校验逻辑 if (CourtCase.Length > 7) { badLines(CourtCase); } return $"{number1:0000}/{number2:00}"; }
效果验证
所有需求场景均可正确处理:
- 合法输入
456/12→ 输出0456/12 - 合法输入
25/1→ 输出0025/01 - 合法输入
/→ 输出0000/00 - 非法输入
A324/1→ 返回FORMAT ERROR - 非法输入
458/P8→ 返回FORMAT ERROR
内容的提问来源于stack exchange,提问作者Juan Sastre
相关产品推荐
相关产品推荐

