首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >InputMismatchException in Scanner.nextBoolean()

InputMismatchException in Scanner.nextBoolean()
EN

Stack Overflow用户
提问于 2022-10-11 06:13:23
回答 2查看 29关注 0票数 -1

我正在运行这段代码以获得3个值:一个整数、一个字符串和一个来自用户的布尔,并将其打印成单独的行。

代码语言:javascript
复制
import java.util.*;

public class Practice {
  public static void main(String[] args){
    int a;
    String b;
    boolean c;

    Scanner scanner = new Scanner(System.in);

    a = scanner.nextInt();
    b = scanner.nextLine();
    c = scanner.nextBoolean();

    System.out.println(a);
    System.out.println(b);
    System.out.println(c);

   }
}

我试图提供这样的投入:

代码语言:javascript
复制
1
hello world
true

在写入第二行输入后,会得到这个错误。

EN

回答 2

Stack Overflow用户

发布于 2022-10-11 06:23:57

next()只能读取输入到空格。它不能读两个由空格隔开的单词。另外,next()在读取输入后将光标放在同一行中。

nextLine()读取输入,包括单词之间的空格(也就是说,它读取到行尾\n)。读取输入后,nextLine()将光标定位到下一行。

代码语言:javascript
复制
public static void main(String... args) {
    Scanner scan = new Scanner(System.in);

    int a = scan.nextInt();
    String b = scan.next();
    boolean c = scan.nextBoolean();

    System.out.println(a);
    System.out.println(b);
    System.out.println(c);
}
票数 0
EN

Stack Overflow用户

发布于 2022-10-11 06:52:15

因此,如果确实需要使用nextLine(),基本上可以使用next()代替nextLine()或重新排序

代码语言:javascript
复制
b = scanner.nextLine();
a = scanner.nextInt();
c = scanner.nextBoolean();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74023687

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档