我的输入字符串是
inputData = "99998UNKNOWN"
inputData = "01000AMEBACIDE/TRICHOM/ANTIBAC 1"
ID = inputData.Substring(0,5);
Name = inputData.Substring(5,30);
Level = inputData.Substring(35,1);
我收到以下错误, 索引和长度必须指向字符串中的位置。
我可以理解,错误是由于" Name"的子字符串中指定的长度造成的。与第一个输入不匹配。 有没有办法处理任何输入长度的这个问题?
答案 0 :(得分:2)
一种方法是在获取子字符串之前在字符串的末尾添加“sentinel”后缀。现在,您可以在从中获取子字符串之前将其添加到数据字符串中。只要后缀有足够的长度,就永远不会得到索引/长度异常:
var padded = inputData.PadRight(32);
ID = padded.Substring(0, 5).Trim();
Name = padded.Substring(5, 30).Trim();
Level = padded.Substring(30, 1).Trim();
但是,现在您的代码应检查ID
,Name
或Level
是否为空。