线程" main"中的例外情况java.util.Scanner.throwFor(Scanner.java:862)中的java.util.NoSuchElementException

时间:2018-06-07 18:36:38

标签: java java.util.scanner nosuchelementexception

我真的不知道问题是什么。这是我得到的错误:

$javac Palindrome.java $java -Xmx128M -Xms16M Palindrome Enter your word Exception in thread "main" java.util.NoSuchElementException at java.util.Scanner.throwFor(Scanner.java:862) at java.util.Scanner.next(Scanner.java:1485) at java.util.Scanner.nextInt(Scanner.java:2117) at java.util.Scanner.nextInt(Scanner.java:2076) at Palindrome.main(Palindrome.java:28)

这是代码:

import java.io.*;
import java.util.Scanner;
import java.util.*;
import java.lang.StringBuffer;
// Java program to illustrate checking of a string
// if its palindrome or not using reverse function
public class Palindrome
{
public static void checkPalindrome(String s)
{
// reverse the given String
    String reverse = new StringBuffer(s).reverse().toString();
// check whether the string is palindrome or not
if (s.equals(reverse))
System.out.println("Yes");
else
System.out.println("No");
}
public static void main (String[] args) throws java.lang.Exception
{
Scanner scanner = new Scanner(System.in);
System.out.println("Enter your word");
String output = scanner.next();
}
}

我要求这个词然后得到输入以检查它是否是回文

2 个答案:

答案 0 :(得分:1)

我不能发表评论,因为我没有足够的声誉。但解决方案是您没有输入源。

您的stacktrace引用的行是:

 private void throwFor() {
    skipped = false;
    //since you are using an online tool, you dont actually have an
    //input unless you click on the stdin tab and provide an input.
    if ( (sourceClosed) && (position == buf.limit()))
        throw new NoSuchElementException();
    else
        throw new InputMismatchException();
}

只需按下stdin标签并在其中输入内容之前输入内容,然后就不应再收到例外。但是你应该提供一些反映你的结果的输出,因为它是一个palindrom :)。

答案 1 :(得分:1)

在在线编辑器中,输入中会出现此问题。 在获得输入之前尝试写作:

    if(sc.hasNext())

代码可以写为:

    public class Palindrome
    {
    public static void checkPalindrome(String s)
    {
    // reverse the given String
        String reverse = new StringBuffer(s).reverse().toString();
    // check whether the string is palindrome or not
    if (s.equals(reverse))
    System.out.println("Yes");
    else
    System.out.println("No");
    }
    public static void main (String[] args) throws java.lang.Exception

    Scanner scanner = new Scanner(System.in);
    System.out.println("Enter your word");

    if(sc.hasNext())

    String output = scanner.next();
    }
    }