Получить int из текстового файла и установить его в переменную

Я пытаюсь получить значение int текстового файла с таким текстом, как:

123456789 12345678 1234567 123456 12345 1234 123 12 1

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

INT1 = 123456789, INT2 = 12345678, INT3 = 1234567;

и так далее. Я не создаю текст, поэтому не знаю, сколько в них цифр и групп, но они всегда разделены «пробелом». Я знаю, как это читать. Вот как я это читаю:

try {
    TEST1 = new BufferedReader(new FileReader("/sdcard/test.txt")).readLine();

    } catch (NumberFormatException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    TEST.setText(""+scaling_available_frequencies);

и я получил этот вывод

194208 776175 958253 767883 700246 243663 966618 345199 945363 459833

ПРИМЕЧАНИЕ. Это всего лишь файл test.txt, который я создал, чтобы проверить, работает ли он. Текущий код попросит пользователя ввести путь и имя файла.

Теперь, как я могу установить их в переменную для каждой группы?

Спасибо


person Rotary Heart    schedule 09.10.2012    source источник


Ответы (2)


Это один из способов разобрать строку на целочисленный массив:

public int[] toIntArray( String stringFromFile ){

    String[] allStrings = stringFromFile.split( "\\s" );
    int[] intArray = new int[allStrings.length];
    for( int i = 0; i < allStrings.length; ++i ){
        try{
            intArray[i] = Integer.parseInt( allStrings[i] );
        }catch( NumberFormatException e ){
            // Do whatever you think is appropriated
            intArray[i] = -1;
        }
    }
    return intArray;
}

Надеюсь это поможет.

person Wenhui    schedule 09.10.2012

Я считаю, что readLine() даст вам String. Вам нужно будет использовать метод Split() для String и передать регулярное выражение (пробелы).

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

person fangmobile    schedule 09.10.2012
comment
Да, я знаю, что это дает мне строку, но я должен установить ее так из-за пробелов, я буду искать этот Split() и посмотреть, что я могу сделать - person Rotary Heart; 09.10.2012