2014-01-30 3 views
0

У меня есть строка, которая имеет следующее:Чтение строки за строкой и токенизацией ввода?

Aaa  Blll Chhh D 
Rrr q h j 9 5 
h 8 i 

Линии, потому что есть «\ п» символов в строке.

Мне нужно уметь помещать это в двумерный массив String.

Отделяет вещи от пробелов.

Так выход это:

["Aaa"]["Blll"]["Chhh"]["D"] 
["Rrr"]["q"]["h"]["j"]["9"]["5"] 
["h"]["8"]["i"] 

Пример:

strings[1][0] is "Rrr" 
strings[2][2] = "i" 

Что я мог бы использовать, чтобы разметить мою входную строку?

Благодаря

+0

Но номер строки не фиксирован, вы не можете использовать массив [] []. –

+0

@AshotKarakhanyan, 'T [] []' is [jagged] (http://en.wikipedia.org/wiki/Jagged_array) в Java. –

+0

Да может иметь длину динамических строк (2-е измерение), но требуется первое измерение. –

ответ

4
String[] lines = input.split("\n\r?|\r"); 
int nLines = lines.length; 
String[][] fields = new String[nLines][]; 
for (int i = 0; i < nLines; ++i) { 
    fields[i] = lines[i].trim().split("[ \t]+"); 
} 

Если входная строка может быть пустой строки или нулевые строки, то вам, возможно, необходимо обрабатывать все пробельные строки или все пробельные входы как особый случай, потому что "".split(...) является new String[] { "" }, не new String[0].

+0

Вы имеете в виду полях [i] = lines [i] ...? – jmasterx

+0

@ Мило, да, спасибо. –

Смежные вопросы