英文:
while using BufferedReader to read 2 numbers in same line I was having an Error: java.lang.NumberFormatException: For input string: "2 3"
问题
Iam new to BufferedReader. I was trying to take input of 2 numbers in the same line for ex: 2 3. For that I have written the below code.
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);
}
}
So Iam encountering the below error.
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)
What's wrong with the code. Thanks in advance.
英文:
Iam new to BufferedReader. I was trying to take input of 2 numbers in the same line for ex: 2 3. For that I have written the below code.
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);
}
}
So Iam encountering the below error.
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)
What's wrong with the code. Thanks in advance.
答案1
得分: 1
当在同一行输入多个输入时,您应该定义一个用于分隔输入的字符。在您的示例中,似乎是通过空格来完成的。
您需要使用 split()
创建一个字符串形式的单行输入的响应数组,然后使用 Integer.parseInt()
将它们分配给您需要的变量。
import java.io.*;
public class Main
{
public static void main(String[] args) throws IOException {
// 创建 BufferedReader 和两个整数
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
int N, M;
// 从用户接收输入,并使用空格将其拆分为数组
// '\\s+' 匹配任何大小的空白字符
String[] inputs = bufferedReader.readLine().split("\\s+");
N = Integer.parseInt(inputs[0]);
M = Integer.parseInt(inputs[1]);
System.out.println("N=" + N + " M=" + M);
}
}
英文:
When taking in multiple inputs on the same line, you should define a character that will be used to separate inputs. In your example, it seems like this is done through whitespace.
You need to create an array of responses from the single line input as a string using split()
, and then assign them to the variables you need using 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);
}
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论