简体   繁体   English

Java扫描仪问题-“无此类元素异常”

[英]Java Scanner issue - “No Such Element Exception”

I've read a lot about this problem with scanner object in java. 我已经阅读了很多有关Java中扫描程序对象的问题。 But I've tried some solutions and none gave me a great result. 但是我尝试了一些解决方案,但都没有给我带来很好的结果。

Here's the deal, I have something like this: 这是交易,我有这样的事情:

Scanner scan = new Scanner(System.in);
while (!(boolean)) {
    System.out.Println("Please give a char :");
    char c = scan.next().charAt(0);
    [...]
}
scan.close();

And this returns an exception, but I don't have time to type a char: 这将返回一个异常,但是我没有时间键入char:

Exception in thread "main" java.util.NoSuchElementException
    at java.util.Scanner.throwFor(Scanner.java:907)
    at java.util.Scanner.next(Scanner.java:1416)
    at class1.main(class.java:21)


I've tried something like this too: 我也尝试过这样的事情:

Scanner scan = new Scanner(System.in);
while (!(boolean)) {
    if (scan.hasNextLine) {
        System.out.Println("Please give a char :");
        char c = scan.next().charAt(0);
    }
    [...]
}
scan.close();

But this time, I have an infinite loop :( 但是这次,我有一个无限循环:(

I don't get it, I can't figure it out by myself, a lot of solutions I read about don't solve the problem for me. 我不明白,我自己弄不清楚,我读过的很多解决方案都不能为我解决问题。

How can I have my char simply in a loop? 我怎样才能简单地将char循环?

Ps: I apologize for not being perfect in English. 附:我很抱歉英语不够完美。

scan.next()

is keep enumerating. 一直在枚举。

So, check before taking input. 因此,请在输入之前进行检查。

Try 尝试

    if(scan.hasNext()){

     System.out.Println("Please give a char :");
            char c = scan.next().charAt(0);
            [...]   
   }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM