при использовании BufferedReader для чтения 2 чисел в одной строке у меня была ошибка: java .lang.NumberFormatException: для входной строки: «2 3» - PullRequest
0 голосов
/ 01 августа 2020

Я новичок в BufferedReader. Я пытался ввести 2 числа в одной строке , например: 2 3 . Для этого я написал приведенный ниже код.

import java.io.*;
public class Main
{
    public static void main(String[] args)throws IOException{
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
        int N = Integer.parseInt(bufferedReader.readLine().trim());

        int M = Integer.parseInt(bufferedReader.readLine().trim());
        System.out.println("N="+N+"M="+M);
    }
}

Итак, я столкнулся с указанной ниже ошибкой.

Exception in thread "main" java.lang.NumberFormatException: For input string: "2 3"                                                 
        at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)                                            
        at java.lang.Integer.parseInt(Integer.java:580)                                                                             
        at java.lang.Integer.parseInt(Integer.java:615)                                                                             
        at Main.main(Main.java:15)                                                                                                  

Что не так с кодом. Заранее спасибо.

1 Ответ

1 голос
/ 01 августа 2020

При вводе нескольких входов в одной строке вы должны определить символ, который будет использоваться для разделения входов. В вашем примере кажется, что это делается через пробелы.

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

import java.io.*;
public class Main
{
    public static void main(String[] args) throws IOException {
        // Create BufferedReader and two ints
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
        int N, M;

        // Take in inputs from user, and split them into an array using whitespace
        // '\\s+' matches at any whitespace size
        String[] inputs = bufferedReader.readLine().split("\\s+");

        N = Integer.parseInt(inputs[0]);
        M = Integer.parseInt(inputs[1]);

        System.out.println("N=" + N + " M=" + M);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...