чтение из консоли

Как я могу преобразовать массив String в массив int в java? Я читаю поток целочисленных символов в массив String из консоли с помощью

BufferedReader br = new BufferedReader (new InputStreamReader(System.in));
for(c=0;c<str.length;c++) 
    str[c] = br.readLine();

где str[] — это строка. Я хочу сравнить содержимое str[]... которое не может быть выполнено с символами (ошибка). И, следовательно, я хочу прочитать int из консоли. Это возможно?


person chatty    schedule 21.12.2009    source источник


Ответы (3)


Integer.parseInt(String); это то, что вам нужно.


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

int[] array = new int[size];
    try {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        for (int j = 0; j < array.length ; j++) {
                int k = Integer.parseInt(br.readLine());
                array[j] = k;
        }
     }

    catch (Exception e) {
            e.printStackTrace();
     }

В любом случае, почему бы вам не использовать сканер? Вам было бы намного проще, если бы вы использовали Scanner. :)

int[] array = new int[size];
    try {
        Scanner in = new Scanner(System.in); //Import java.util.Scanner for it
        for (int j = 0; j < array.length ; j++) {
                int k = in.nextInt();
                array[j] = k;
        }
     }
     catch (Exception e) {
            e.printStackTrace();
     }

person Prasoon Saurav    schedule 21.12.2009

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

java.util.Scanner sc = new java.util.Scanner(System.in);  // "System.in" is a stream, a String or File object could also be passed as a parameter, to take input from

int n;    // take n as input or initialize it statically
int ar[] = new int[n];
for(int a=0;a<ar.length;a++)
  ar[a] = sc.nextInt();
// ar[] now contains an array of n integers

Также обратите внимание, что функция nextInt() может генерировать 3 исключения, как указано здесь. Не забывайте обрабатывать их.

person Rushil Paul    schedule 03.04.2012

person    schedule
comment
Не забудьте поймать NumberFormatException, если String не содержит анализируемого int. - person Asaph; 21.12.2009