【发布时间】:2016-03-24 21:26:13
【问题描述】:
我使用 BufferedReader 从用户那里读取数据,但它给出了 NumberFormat 异常,前提是我以某种方式给出了输入。假设在 C 中,我这样写代码:
scanf("%d %d", &x, &y);
我尝试像这样向控制台提供输入:23 45,它分配的值如下:
x = 23,y = 45
我怎样才能在java中做这样的事情。我试过这样:
BufferedReader br1 = new BufferedReader(new InputStreamReader(System.in));
BufferedReader br2 = new BufferedReader(new InputStreamReader(System.in));
String line1 = br1.readLine();
String line2 = br2.readLine();
int x = Integer.parseInt(line1);
int y = Integer.parseInt(line2);
但这给出了:
线程“main”java.lang.NumberFormatException 中的异常:对于输入 字符串:“23 45”在 java.lang.NumberFormatException.forInputString(Unknown Source) 在 java.lang.Integer.parseInt(未知来源)在 java.lang.Integer.parseInt(Unknown Source) at AB.main(AB.java:23)
【问题讨论】:
-
如果我没记错的话,你写的内容被读为一行。试着给它: 23 (enter) 45 如果你想达到这个目的,你必须读一行你想要的所有数字,然后用空格分割这个字符串
-
@user3248186 是只输入一次还是请求两次?
-
readLine 一直读到行尾。在这种情况下,它应该问你两次
-
@Greyshack:我知道它将它作为一行,并且如果我按 Enter 键它就可以工作,但我希望它与空格一起工作,因为这就是它在像 hackerearth 这样的网站上给出的方式。
-
是的,我告诉过你,你只能读取一行,然后使用 String 的 split() 方法将其拆分,并将 " " 作为拆分的参数传递
标签: java c io bufferedreader