Вот пример того, о чем я говорил.
- Вам нужно убедиться, что ваши вкладки преобразованы в пробелы, сохраняя при этом расположение столбцов.
- Потому что табуляции и пробелы смешиваются, самое простое решение - просмотреть начало столбца и вручную ввести их в массив. Если вы сделаете руководство, как показано ниже, это сделать тривиально.
- Затем просто прочитайте строки и разделите их, используя расположение столбцов.
- За «данными» следует номер столбца , или, если они сгруппированы в одном столбце, число и букву.
String[] data = {
// 1111111111222222222233333333334444444444555555555566666666667777777777
// 01234567890123456789012345678901234567890123456789012345678901234567890123456789
"Data1 Data2 Data3 Data4 Data5a Data5b Data5c Data6 Data7 Data8",
"Data1 Data2 Data3 Data4 Data5a Data5b Data5c Data6 Data7 ",
"Data1 Data2 Data3 Data6 Data7 Data8",
"Data1 Data2 Data4 Data5a Data5b Data5c Data6 Data7 Data8",
};
// last entry is string length of the line
int[] columnStarts = { 0, 7, 18, 26, 34, 58, 64, 74, 79};
for (String line : data) {
int columnNumber = 0;
for (int i = 0; i < columnStarts.length - 1; i++) {
System.out.printf("%3d : %3d -- '%s'%n",
(columnNumber + 1),
columnStarts[columnNumber],
line.substring(columnStarts[i],
columnStarts[i + 1]).trim());
columnNumber++;
}
System.out.println();
}
Печать
1 : 0 -- 'Data1'
2 : 7 -- 'Data2'
3 : 18 -- 'Data3'
4 : 26 -- 'Data4'
5 : 34 -- 'Data5a Data5b Data5c'
6 : 58 -- 'Data6'
7 : 64 -- 'Data7'
8 : 74 -- 'Data8'
1 : 0 -- 'Data1'
2 : 7 -- 'Data2'
3 : 18 -- 'Data3'
4 : 26 -- 'Data4'
5 : 34 -- 'Data5a Data5b Data5c'
6 : 58 -- 'Data6'
7 : 64 -- 'Data7'
8 : 74 -- ''
1 : 0 -- 'Data1'
2 : 7 -- 'Data2'
3 : 18 -- 'Data3'
4 : 26 -- ''
5 : 34 -- ''
6 : 58 -- 'Data6'
7 : 64 -- 'Data7'
8 : 74 -- 'Data8'
1 : 0 -- 'Data1'
2 : 7 -- 'Data2'
3 : 18 -- ''
4 : 26 -- 'Data4'
5 : 34 -- 'Data5a Data5b Data5c'
6 : 58 -- 'Data6'
7 : 64 -- 'Data7'
8 : 74 -- 'Data8'
Обратите внимание, что данные обрезаются и печатаются, чтобы показать только данные часть колонны. Без обрезки пробелов в данных будут отображаться конечные пробелы для каждого столбца.
Вышеупомянутого должно быть достаточно, чтобы вы могли сохранить информацию в массиве или списке и изменить ее в зависимости от номера столбца.