Java 扫描整数后的字符


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);

最新更新