2013-04-02 5 views
3

Какова наилучшая практика для разбора этих строк из файла?Java - строки разбора

files  txt 50  // first gab are spaces, the second is tabulator 
files  bmp 9979 
files  all 2063 
score  scr 656 
index  ind 0.0779 
index  ind 0.0213 

мне нужно получить только значение (50, 9979 и т.д.), чтобы иметь возможность сохранить их в CSV-файл (но это не является частью этого вопроса).

ответ

5

Вы могли бы разделить на \s+ и доступ к последней ячейке возвращаемого массива.

for (String line : lines) { 
    String[] data = line.split("\\s+"); 
    String lastEntry = data[data.length - 1]; 
    // lastEntry contains what you're looking for 
} 
+0

Большое спасибо! – gaffcz

1

Прочитайте строки, проведите по ним и используйте регулярное выражение, чтобы разделить линии и получить значения. Вот и все.

2

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

Для вашего случая вы должны начать с 16 и прочитать до конца строки.

123456789
files  txt 50  
files  bmp 9979 
files  all 2063 
score  scr 656 
index  ind 0.0779 
index  ind 0.0213 
+0

О написал о структуре. Сначала пробелы - это вкладка. –

+0

Спасибо вам тоже :-) – gaffcz

2

Читайте каждую строку, используя FileReader затем разделить String пробелами и получить третий индекс.

String value =line.split("\\s+")[2]; 
+0

Большое спасибо! – gaffcz

+0

@ gaffcz Рад, что я мог бы помочь. –

5

Это то, что вы хотите?

BufferedReader br = new BufferedReader(new FileReader(file)); 
String line; 
while ((line = br.readLine()) != null) { 
    String val = line.split("\\s+")[2]; 
    //do something with val 

} 
br.close(); 
+0

Большое спасибо! – gaffcz

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