2013-04-09 5 views
-4

У меня есть некоторые текстовые файлы с информацией о времени, как:Чтение и разделить текстовый файл (Java)

46321882696937;46322241663603;358966666 
46325844895266;46326074026933;229131667 
46417974251902;46418206896898;232644996 
46422760835237;46423223321897;462486660 

На данный момент мне нужен третий столбец файла, чтобы вычислить среднее значение.

Как я могу это сделать? Мне нужно получить все текстовые строки, а затем получить последний столбец?

+5

Ладно, так что у вас есть три задачи здесь: прочитайте файл по строкам; анализировать каждую строку; вычислить среднее значение. Как далеко у вас есть с каждой задачей? –

+1

у вас есть код для нас? –

ответ

11

Вы можете прочитать файл строки за строкой, используя BufferedReader или Scanner, или даже какую-либо другую технику. Использование сканера довольно просто, как это:

public void read(File file) throws IOException{ 
    Scanner scanner = new Scanner(file); 

    while(scanner.hasNext()){ 
     System.out.println(scanner.nextLine()); 
    } 
} 

Для расщепления строки с определенным разделителем, вы можете использовать метод разделения, что recevies регулярного выражения в качестве аргумента, и разбивает строку на всех последовательностях символов которые соответствуют этому выражению. В вашем случае это довольно просто, только ;

String[] matches = myString.split(";"); 

И если вы хотите, чтобы получить последний элемент массива, вы можете просто использовать его в качестве параметра length. помня о том, что последний элемент массива всегда в индексе length - 1

String lastItem = matches[matches.length - 1]; 

И если вы присоединитесь все вместе вы можете получить что-то вроде этого:

public void read(File file) throws IOException{ 
    Scanner scanner = new Scanner(file); 

    while(scanner.hasNext()){ 
     String[] tokens = scanner.nextLine().split(";"); 
     String last = tokens[tokens.length - 1]; 
     System.out.println(last); 
    } 
} 
+0

Вы можете применить переменную last к Integer с Integer.valueOf (последняя) и добавить все значения вместе. –

0

Да, вы должны прочитать каждую строку файла и разделить его на «;» разделитель и читать третий элемент.

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