2012-03-25 2 views
1

В настоящее время я пытаюсь прочитать определенные данные из нескольких строк (из указанного файла) в java.Я хочу читать данные из строки в файле. в Java

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

 Firstname 100700 Lastname 
     Firstname 260000 Lastname 
     Firstname 303000 Lastname 
     Firstname 505050 Lastname 

Как бы я мог поместить что-то в свой код, что позволяет программе читать числовые данные в моем сценарии. (Btw пробелы должны быть там) Вход буферизатора;

input = new BufferedReader(new FileReader("file.txt"));// file to be read from 
    String Line; 
    int i = 0; 
    int[]number=new int[4]; 
    while (Line != null) 
    { 
     Line = input.readLine(); 

     // Then i would need something down here to read the numerical values? 
     number[i]=???? 

     i++ 
    } 

Любая помощь будет принята с благодарностью.

Спасибо.

+0

все линии в определенном формате? вы можете разделить строку на токены, используя метод «split» String и преобразовать числовой токен в число, используя 'Integer.valueOf (string)'. – twain249

+0

Приветствия за это, строки - это все строки. – user1058452

ответ

2

Hava a смотреть на String.split() и Integer.parseInt().

Вы можете использовать Line.split(" ") разделить ваш String в String[], а затем использовать Integer.parseInt(myArray[1]), чтобы получить число в качестве int.

Также обратите внимание: в Java, то соглашение, что переменные начинаются с буквы нижнего регистра, поэтому следует рассмотреть вопрос о переименовании Line ->line

0

Попробуйте

String line = input.readLine(); 
if (line != null) { 
    int number = Integer.parseInt(line.replaceAll("[^\\d]", "")); 
    ... 
} 
0

Scanner имеет .hasNextInt() и .nextInt(). Вы можете использовать их для чтения чисел. В противном случае вы можете просто использовать некоторые регулярные выражения с классом Pattern или использовать предложение amit.

1
input = new BufferedReader(new FileReader("file.txt"));// file to be read from 
String line; 
int i = 0; 
int[]number=new int[4]; 
while (line != null) 
{ 
    line = input.readLine(); 
    // here is my refinement 
    String[] x = line.Split(); 
    System.out.println("FirstName: " + x[0]); 
    System.out.println("Number: " + x[1]); 
    System.out.println("LastName: " + x[2]); 

    i++ 
} 
+0

Спасибо за ответ. Нет String.Split(). (это должно быть .split() Пожалуйста, убедитесь, что часть кода «код» компилируется/не имеет орфографических ошибок. – Jayan