Я хочу читать данные из строки в файле. на Яве - PullRequest
1 голос
/ 25 марта 2012

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

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

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

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

    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++
    }

Любая помощь будет оценена.

Спасибо.

Ответы [ 4 ]

2 голосов
/ 25 марта 2012

Есть взгляд на String.split() и Integer.parseInt().

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

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

1 голос
/ 25 марта 2012
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 голосов
/ 25 марта 2012

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

0 голосов
/ 25 марта 2012

Попробуйте это

String line = input.readLine();
if (line != null) {
   int number = Integer.parseInt(line.replaceAll("[^\\d]", ""));
   ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...