Java程序中的空指针异常
问题:您必须检查n个测试用例,其中 b是否等于第三个输入值。如果等于,则打印“是” 否则不行。 输入:256304320 输出:是否 说明:2是测试用例的数量。5是a,6是b ,乘法是30,所以是的 限制条件:Java程序中的空指针异常,java,nullpointerexception,Java,Nullpointerexception,问题:您必须检查n个测试用例,其中 b是否等于第三个输入值。如果等于,则打印“是” 否则不行。 输入:256304320 输出:是否 说明:2是测试用例的数量。5是a,6是b ,乘法是30,所以是的 限制条件: 0
0
br.readLine()
到达文件末尾时将返回null
。而新扫描仪(字符串)
将不接受null
作为参数。除此之外,您应该始终检查有效输入/是否可以从资源中读取数据。br.readLine()
正在抛出NPE,是否有一行可供其读取?是的,您应该在新建扫描仪()
之前检查br.readLine()==null
。
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.math.BigInteger;
import java.util.Scanner;
class ques1
{
public static void main(String[] args) throws Exception
{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
Scanner sc=new Scanner(System.in);
BigInteger test=new BigInteger(sc.next());
while(!test.equals(BigInteger.ZERO))
{
Scanner s=new Scanner(br.readLine());
s.useDelimiter(" ");
BigInteger p=new BigInteger(s.next());
BigInteger q=new BigInteger(s.next());
BigInteger r=new BigInteger(s.next());
if(p.multiply(q).equals(r))
{
System.out.println("YES");
}
else
{
System.out.println("NO");
}
test=test.subtract(BigInteger.ONE);
}
}
}
Exception in thread "main" java.lang.NullPointerException
at java.io.StringReader.<init>(StringReader.java:50)
at java.util.Scanner.<init>(Scanner.java:702)
at ques1.main(Main.java:18)