我是java的新手,这是我的以下代码,用来从用户那里输入两个数字。
package additio;
import java.io.*;
public class Additio
{
public static void main(String args[])throws Exception
{
BufferedReader br= new BufferedReader( new InputStreamReader(System.in));
System.out.println("Enter the two numbers to add:");
char d=(char) br.read();
char e=(char) br.read();
int a=Character.getNumericValue(d);
int b=Character.getNumericValue(e);
int c = a+b;
System.out.println("\nSum of two numbers:"+c);
}
}
现在,我的问题是: -
它只需要一个输入而不是编写用于获取两个输入的代码,为什么会发生此运行时错误
为什么它只需要单个值,它只取值o到9,这意味着它只需要一个值,提供十个值它只给出1是运行时错误。
答案 0 :(得分:0)
不要读取两个字符并将它们转换为整数,而是使用br.nextInt()。
答案 1 :(得分:0)
这是因为您将输入放在一个字符
中 char d=(char) br.read();
这消除了"数值"。
您可以将输入放在String
中,也可以使用br.nextInt()
作为@rissandimo建议。
答案 2 :(得分:0)
如果您想知道为什么您的代码没有采用两个输入,因为
br.read()
不区分回车(输入密钥)
和有效的输入。它不会将返回键识别为输入流的末尾,并将enter视为第二个输入。
要解决这个问题,
像这样添加br.readLine()
,
char d=(char) br.read();
br.readLine();
char e=(char) br.read();
这将消耗新行并仍可用于下一个输入