package newproj;
import java.util.Scanner;
public class MyFirstClass
{
public static void main(String[] args)
{
char a;
int b;
Scanner sc = new Scanner(System.in);
System.out.print("Enter value b: ");
b= sc.nextInt();
System.out.print("Enter char: ");
a = sc.nextLine().charAt(0);
System.out.println("This is "+a);
}
}
运行时控制台上反映的错误是线程"main"java.lang.StringIndexOutOfBounds异常:字符串索引超出范围:-1。
有人可以教我如何在扫描整数后扫描字符。在 C 编程中,有 "fflush(stdin)" 来帮助 scanf 函数。所以,我沿着这条线思考,换行符被扫描了。
逐行读取输入并将第一行解析为int
。如果它包含无效字符,则会抛出NumberFormatException
。
public static void main(String[] args) throws NumberFormatException
{
char a;
int b;
Scanner sc = new Scanner(System.in);
System.out.println("Enter value b: ");
b = Integer.parseInt(sc.nextLine());
System.out.println("Enter char: ");
a = sc.nextLine().charAt(0);
System.out.println("This is "+a);
}
按如下方式更改代码
char a;
int b;
Scanner sc = new Scanner(System.in);
Scanner sc1 = new Scanner(System.in);
System.out.print("Enter value b: ");
b= sc.nextInt();
System.out.print("Enter char: ");
a = sc1.nextLine().charAt(0);
System.out.println("This is "+a);