0

我的输入字符串是

  1. inputData = "99998UNKNOWN"
  2. inputData = "01000AMEBACIDE/TRICHOM/ANTIBAC 1"
  3. inputData = "34343AMEBACIDE/TRICHOM/ANTIBACSADWA1"

ID = inputData.Substring(0,5); Name = inputData.Substring(5,30); Level = inputData.Substring(35,1);

我收到以下错误,索引和长度必须引用字符串中的位置。

我可以理解,错误是由于“名称”的子字符串中指定的长度与第一个输入不匹配。有没有办法用任何输入长度来处理这个问题?

4

1 回答 1

2

一种方法是在获取子字符串之前将“哨兵”后缀添加到字符串的末尾。现在,您可以在从中获取子字符串之前将其添加到数据字符串中。只要后缀有足够的长度,就永远不会出现索引/长度异常:

var padded = inputData.PadRight(32);
ID = padded.Substring(0, 5).Trim();
Name = padded.Substring(5, 30).Trim();
Level = padded.Substring(30, 1).Trim();

但是,现在您的代码应该检查IDNameLevel是否为空。

于 2017-02-15T15:17:38.653 回答