Извлечь таблицу данных из текстового файла Java

У меня проблема с извлечением таблицы данных из текстового файла с помощью java.

Таблица устроена следующим образом:

FirstName Surname Mark Age Height

Charlie   Brown   5         170cm
Lucy      Harlow      16    160cm
Jame      Horde   11  18
Charrlot  White       19    165cm
Jimmy     Lutton  15  17    180cm

Я намеревался иметь класс человека, который имеет соответствующие переменные для хранимых данных, таких как имя, фамилия, отметка и возраст.

Однако, когда я попытался извлечь строку за строкой, чтобы получить строку данных, и использовать string.split(), чтобы разбить строку, чтобы получить столбец. Тогда я не могу определить, какие данные принадлежат какому столбцу.

line = br.readLine()

вернется "Чарли Браун 5 170см"

и value = line.split("//s+"); вернет value[Charlie,Brown,5,170cm]. На данный момент я не могу определить, какое значение принадлежит какому столбцу.

Пожалуйста помоги


person user1139747    schedule 04.02.2012    source источник
comment
Итак, в первой строке данных 5\t\t170см?   -  person Azodious    schedule 04.02.2012
comment
да, но если я запускаю цикл, то трудно определить, какие данные принадлежат какой строке...   -  person user1139747    schedule 04.02.2012


Ответы (2)


arrow_upward
0
arrow_downward

После извлечения строки для каждой строки можно найти индекс \t с помощью метода indexOf, а затем использовать subString для извлечения части.

person Azodious    schedule 04.02.2012
comment
или следует просто использовать цикл для проверки каждой буквы - person user1139747; 04.02.2012
comment
да, необходимо проверить некоторые условия, такие как пустая строка, пустая строка, строка, когда ожидается int .. и т. д. - person Azodious; 04.02.2012

arrow_upward
0
arrow_downward

Если ваш файл разделен табуляцией, вам следует просто разделить символы табуляции вместо 1 или более символов пробела.

value = line.split("\t");

Это поместит строки в правильные строки и пустые строки, если там ничего нет.

person RussS    schedule 04.02.2012