Исключение в потоке "main" java.util.NoSuchElementException на java.util.Scanner.throwFor (Scanner.java:862) - PullRequest
0 голосов
/ 07 июня 2018

Я действительно не понимаю, в чем может быть проблема.Это ошибка, которую я получаю:

$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 голосов
/ 15 февраля 2019

В онлайн-редакторе эта проблема возникает при вводе.Попробуйте написать перед получением входных данных:

    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();
    }
    }
0 голосов
/ 08 июня 2018

Я не могу оставлять комментарии, так как у меня недостаточно репутации.Но решение состоит в том, что у вас нет входного источника.

Строка, к которой относится ваша трассировка стека:

 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 и введите что-нибудь в нее перед выполнением кода вваш онлайн иде, и вы не должны больше получать исключение.Но вы должны предоставить какой-то вывод, который отражает ваш результат, если это палиндром:).

...