【问题标题】:The Java Scanner is not taking my String InputJava 扫描程序没有接受我的字符串输入
【发布时间】:2022-01-16 17:40:55
【问题描述】:
public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    int i = scan.nextInt();
    double d = scan.nextDouble();
    String s = scan.nextLine();
    

    System.out.println("String: " + s);
    System.out.println("Double: " + d);
    System.out.println("Int: " + i);
}

这是我的代码。它编译正确,没有语法错误,但我不明白为什么我的字符串输入没有被采用。一旦我给出整数输入和双输入,输出就变成了:

输入

42

309.23

输出

字符串:

双倍:309.23

诠释:42

【问题讨论】:

    标签: java string input java.util.scanner


    【解决方案1】:

    请注意,对于单行输入1 1.1 done,您将获得输出:

    String:  done
    Double: 1.1
    Int: 1
    

    done 在输出中前面有一个空格字符,提示您扫描程序一次使用一个令牌。例如,查看 scan.nextIntscan.nextLine 的文档

    【讨论】:

      【解决方案2】:

      scan.nextDouble()scan.nextInt() 没有完成该行,因此当scan.nextLine() 变得简单时,您可以说它消耗了剩余的空白行,因此 String 什么也不打印。要消耗剩余的行,请将 scan.nextLine() 放在 String s = scan.nextLine(); 之前

      【讨论】:

        猜你喜欢
        • 2011-08-23
        • 1970-01-01
        • 2014-12-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多