2017-02-15 8 views
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);

Я получаю ошибку ниже, индекс и длина должна относиться к местоположению внутри строки.

Я понимаю, ошибка связана с длиной, указанной в подстроке для «Имя», не соответствует первому вводу. Есть ли способ справиться с этой проблемой с любой длиной ввода?

+0

Непонятно, какую «обработку» вы хотите. Вы можете сначала проверить длину 'inputData', но ... –

+0

проблема с форматированием @dasblinkenlight. fixed – dotctor

+0

@dasblinkenlight Да. Кажется, что что-то не так с вопросом. – dotctor

ответ

2

Один из подходов состоит в том, чтобы добавить суффикс «дозорный» в конец строки, прежде чем брать подстроки. Теперь вы можете добавить его в строку данных, прежде чем брать из нее подстроки. До тех пор, как суффикс имеет достаточную длину, вы никогда не получите исключение индекс/длина:

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 пуст.