Java 为什么运行此代码时会出现NullPointerException?
为什么我在运行这段代码时会遇到NullPointerException,我已经查找了它是什么,但仍然不知道如何修复它;请帮忙Java 为什么运行此代码时会出现NullPointerException?,java,input,nullpointerexception,char,Java,Input,Nullpointerexception,Char,为什么我在运行这段代码时会遇到NullPointerException,我已经查找了它是什么,但仍然不知道如何修复它;请帮忙 import java.util.Scanner; public class Test{ public static void main(String [] args){ Scanner sc = new Scanner(System.in); System.out.println(); String User = sc.n
import java.util.Scanner;
public class Test{
public static void main(String [] args){
Scanner sc = new Scanner(System.in);
System.out.println();
String User = sc.nextLine();
char [] pass = System.console().readPassword();
System.out.println(pass);
char c = sc.next().charAt(0);
System.out.println(c);
char d = sc.findInLine("a").charAt(0);
System.out.println(d);
char b = sc.next().charAt(0);
System.out.println(b);
System.out.println(User);
}
}
运行代码时,所有操作都正常运行,直到最后两行使用变量char b
时,输出的错误如下:
Exception in thread "main" java.lang.NullPointerException
at Test.main(Test.java:11)
它看起来像
sc.findInLine(“.”)
在这里返回null。根据,
另外,当您将字符串模式传递给findInLine时,它最终的行为类似于
findInLine(pattern.compile(pattern))
虽然整个类没有包含在您的代码段中,但我觉得下面可能是问题所在
sc.next(“.”)返回null
NullPointerException
会在Java应用程序中抛出。尝试调用空对象的实例方法时发生错误。例如,您有一个对象sc.next(“.”
返回一个空对象,并且您正试图使用此对象访问charAt(0)
方法
如果您仍然有些困惑,请发布您的整个课程尝试以下方法:
import java.util.Scanner;
public class Test{
public static void main(String [] args){
Scanner sc = new Scanner(System.in);
System.out.println();
String User = sc.nextLine();
char [] pass = System.console().readPassword();
System.out.println(pass);
char c = sc.next().charAt(0);
System.out.println(c);
String d = sc.next();
boolean Contained;
if(d.contains("a")){
Contained = true;
}
else{ Contained = false; }
System.out.println(d);
System.out.println("Contains a ? " + Contained);
char b = sc.next().charAt(0);
System.out.println(b);
System.out.println(User);
}
}
这仍然会检查字符
a
是否在字符串中,尽管它将返回true
或false
什么是“sc”以及如何确保它有两个“.”?因为sc.next(“.”
返回null
。第33行是char d=sc.findInLine(.”)。charAt(0)
看起来像sc.findInLine(“.”
返回null
@Andy我可以使用哪些参数从扫描仪中查找特定字符?我试着用一个存在的字母替换“
,但它仍然会给出NullPointerException
import java.util.Scanner;
public class Test{
public static void main(String [] args){
Scanner sc = new Scanner(System.in);
System.out.println();
String User = sc.nextLine();
char [] pass = System.console().readPassword();
System.out.println(pass);
char c = sc.next().charAt(0);
System.out.println(c);
String d = sc.next();
boolean Contained;
if(d.contains("a")){
Contained = true;
}
else{ Contained = false; }
System.out.println(d);
System.out.println("Contains a ? " + Contained);
char b = sc.next().charAt(0);
System.out.println(b);
System.out.println(User);
}
}