我想输入一个名字并打印第一个字符....
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);
}
}
答案 0 :(得分:2)
某些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));
这将打印输入字符串的第一个字母。
答案 1 :(得分:1)
使用Console类有时可能有点不可靠。
对于读取控制台输入,最好使用Scanner类或BufferedReader。 您可以使用扫描仪,如:
Lib/distutils
您也可以使用BufferedReader,如:
pre Java 7语法
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);
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();
}
注意:调用br.readLine()时需要使用try-catch语句,因为它会抛出IOException。
如果要读取令牌(由空格分隔的文本块),可以使用扫描仪。如果您只想从InputStream中读取,请使用BufferedReader。