为什么我会得到java.lang.NullPointerException?
我想输入一个名字并打印第一个字符为什么我会得到java.lang.NullPointerException?,java,nullpointerexception,Java,Nullpointerexception,我想输入一个名字并打印第一个字符 public class Test { public static void main(String[] args) { Console console = System.console(); System.out.println("Type your name : "); String inputChar = console.readLine(); char firstChar =
public class Test {
public static void main(String[] args) {
Console console = System.console();
System.out.println("Type your name : ");
String inputChar = console.readLine();
char firstChar = inputChar.charAt(0);
System.out.println(firstChar);
}
}
一些IDE将为控制台类返回NPE。您可以使用Scanner类并轻松地执行此操作: 试试这个:
Scanner scan = new Scanner(System.in);
System.out.println("Enter a Name:");
String s = scan.next();
System.out.println(s.charAt(0));
这将打印输入字符串的第一个字母。一些IDE将为Console类返回NPE。您可以使用Scanner类并轻松地执行此操作: 试试这个:
Scanner scan = new Scanner(System.in);
System.out.println("Enter a Name:");
String s = scan.next();
System.out.println(s.charAt(0));
这将打印输入字符串的第一个字母。一些IDE将为Console类返回NPE。您可以使用Scanner类并轻松地执行此操作: 试试这个:
Scanner scan = new Scanner(System.in);
System.out.println("Enter a Name:");
String s = scan.next();
System.out.println(s.charAt(0));
这将打印输入字符串的第一个字母。一些IDE将为Console类返回NPE。您可以使用Scanner类并轻松地执行此操作: 试试这个:
Scanner scan = new Scanner(System.in);
System.out.println("Enter a Name:");
String s = scan.next();
System.out.println(s.charAt(0));
这将打印输入字符串的第一个字母。使用Console类有时可能有点不可靠 对于读取控制台输入,最好使用Scanner类或BufferedReader。 您可以使用如下扫描仪:
Scanner scanner = new Scanner(System.in); // System.in is the console's inputstream
System.out.print("Enter text : ");
String input = scanner.nextLine();
// ^^ This reads the entire line. Use this if you expect spaces in your input
// Otherwise, you can use scanner.next() if you only want to read the next token
System.out.println(input);
您还可以使用BufferedReader,如:
Java 7之前的语法
try {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Enter text : ");
String input = br.readLine();
System.out.println(input);
br.close();
} catch (Exception e) {
e.printStackTrace();
}
try (BufferedReader br = new BufferedReader(new InputStreamReader(System.in))) {
System.out.print("Enter text : ");
String input = br.readLine();
System.out.println(input);
} catch (Exception e) {
e.printStackTrace();
}
Java7语法
try {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Enter text : ");
String input = br.readLine();
System.out.println(input);
br.close();
} catch (Exception e) {
e.printStackTrace();
}
try (BufferedReader br = new BufferedReader(new InputStreamReader(System.in))) {
System.out.print("Enter text : ");
String input = br.readLine();
System.out.println(input);
} catch (Exception e) {
e.printStackTrace();
}
注意:调用br.readLine()时需要使用try-catch语句,因为它会引发IOException
如果要读取标记(由空格分隔的文本块),可以使用Scanner。如果只想从InputStream中读取,请使用BufferedReader。使用Console类有时可能有点不可靠 对于读取控制台输入,最好使用Scanner类或BufferedReader。 您可以使用如下扫描仪:
Scanner scanner = new Scanner(System.in); // System.in is the console's inputstream
System.out.print("Enter text : ");
String input = scanner.nextLine();
// ^^ This reads the entire line. Use this if you expect spaces in your input
// Otherwise, you can use scanner.next() if you only want to read the next token
System.out.println(input);
您还可以使用BufferedReader,如:
Java 7之前的语法
try {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Enter text : ");
String input = br.readLine();
System.out.println(input);
br.close();
} catch (Exception e) {
e.printStackTrace();
}
try (BufferedReader br = new BufferedReader(new InputStreamReader(System.in))) {
System.out.print("Enter text : ");
String input = br.readLine();
System.out.println(input);
} catch (Exception e) {
e.printStackTrace();
}
Java7语法
try {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Enter text : ");
String input = br.readLine();
System.out.println(input);
br.close();
} catch (Exception e) {
e.printStackTrace();
}
try (BufferedReader br = new BufferedReader(new InputStreamReader(System.in))) {
System.out.print("Enter text : ");
String input = br.readLine();
System.out.println(input);
} catch (Exception e) {
e.printStackTrace();
}
注意:调用br.readLine()时需要使用try-catch语句,因为它会引发IOException
如果要读取标记(由空格分隔的文本块),可以使用Scanner。如果只想从InputStream中读取,请使用BufferedReader。使用Console类有时可能有点不可靠 对于读取控制台输入,最好使用Scanner类或BufferedReader。 您可以使用如下扫描仪:
Scanner scanner = new Scanner(System.in); // System.in is the console's inputstream
System.out.print("Enter text : ");
String input = scanner.nextLine();
// ^^ This reads the entire line. Use this if you expect spaces in your input
// Otherwise, you can use scanner.next() if you only want to read the next token
System.out.println(input);
您还可以使用BufferedReader,如:
Java 7之前的语法
try {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Enter text : ");
String input = br.readLine();
System.out.println(input);
br.close();
} catch (Exception e) {
e.printStackTrace();
}
try (BufferedReader br = new BufferedReader(new InputStreamReader(System.in))) {
System.out.print("Enter text : ");
String input = br.readLine();
System.out.println(input);
} catch (Exception e) {
e.printStackTrace();
}
Java7语法
try {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Enter text : ");
String input = br.readLine();
System.out.println(input);
br.close();
} catch (Exception e) {
e.printStackTrace();
}
try (BufferedReader br = new BufferedReader(new InputStreamReader(System.in))) {
System.out.print("Enter text : ");
String input = br.readLine();
System.out.println(input);
} catch (Exception e) {
e.printStackTrace();
}
注意:调用br.readLine()时需要使用try-catch语句,因为它会引发IOException
如果要读取标记(由空格分隔的文本块),可以使用Scanner。如果只想从InputStream中读取,请使用BufferedReader。使用Console类有时可能有点不可靠 对于读取控制台输入,最好使用Scanner类或BufferedReader。 您可以使用如下扫描仪:
Scanner scanner = new Scanner(System.in); // System.in is the console's inputstream
System.out.print("Enter text : ");
String input = scanner.nextLine();
// ^^ This reads the entire line. Use this if you expect spaces in your input
// Otherwise, you can use scanner.next() if you only want to read the next token
System.out.println(input);
您还可以使用BufferedReader,如:
Java 7之前的语法
try {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Enter text : ");
String input = br.readLine();
System.out.println(input);
br.close();
} catch (Exception e) {
e.printStackTrace();
}
try (BufferedReader br = new BufferedReader(new InputStreamReader(System.in))) {
System.out.print("Enter text : ");
String input = br.readLine();
System.out.println(input);
} catch (Exception e) {
e.printStackTrace();
}
Java7语法
try {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Enter text : ");
String input = br.readLine();
System.out.println(input);
br.close();
} catch (Exception e) {
e.printStackTrace();
}
try (BufferedReader br = new BufferedReader(new InputStreamReader(System.in))) {
System.out.print("Enter text : ");
String input = br.readLine();
System.out.println(input);
} catch (Exception e) {
e.printStackTrace();
}
注意:调用br.readLine()时需要使用try-catch语句,因为它会引发IOException
如果要读取标记(由空格分隔的文本块),可以使用Scanner。如果您只想从InputStream中读取数据,请使用BufferedReader。提供从何处获取NPE的堆栈跟踪。您是否在代码上安装了调试器?[有时,当人们在IDE中运行代码时,
Console
class会给他们带来惊喜。][1][1]:提供堆栈跟踪,您从哪里获得NPE。您是否在代码上安装了调试器?[有时,当人们在IDE中运行代码时,Console
class会给他们带来惊喜。][1][1]:提供堆栈跟踪,您从哪里获得NPE。您是否在代码上安装了调试器?[有时,当人们在IDE中运行代码时,Console
class会给他们带来惊喜。][1][1]:提供堆栈跟踪,您从哪里获得NPE。你在代码上放了调试器吗?[有时控制台
类在IDE中运行代码时会让人感到意外。][1][1]:+1作为替代。Scanner类有许多有用的函数,t处理可能发生的异常。Scanner类有许多有用的函数,t处理可能发生的异常。Scanner类有许多有用的函数,t处理可能发生的异常。Scanner类有许多有用的函数,t处理可能发生的异常。