Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

How to solve NoSuchElement in java?

It works well on Intellij.
However, NoSuchElement appears on the algorithmic solution site.
I know that NoSuchElement is a problem caused by trying to receive it even though there is no value entered.
But I wrote it so that the problem of NoSuchElement doesn’t occur.
Because given str, the for statement executes. Given "END", the if statement is executed. And because it ends with "break;".
I don’t know what the problem is.

Algorithm problem: Arrange the reverse sentence correctly.
My code for algorithmic problems

import java.util.Scanner;

    public class Main {
    public static void main(String[] args) {
        while(true) {
            Scanner scan = new Scanner(System.in);
            String str = scan.nextLine();
            if(str.equals("END")){
                break;
            }
            for (int i = str.length()-1; i >=0; i--) {
                System.out.print(str.charAt(i));
            }
            System.out.println();
        }
        }
    }

Output

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

!edoc doog a tahW
erafraw enirambus detcirtsernu yraurbeF fo tsrif eht no nigeb ot dnetni eW
END

Expected

What a good code!
We intend to begin on the first of February unrestricted submarine warfare

>Solution :

This happens when there is no input at all, for example when you hit Ctrl + d or run your code like echo "" | java Main.java.

To avoid this, check that the Scanner actually has input before trying to grab the next line. Pull scan out of the loop, there is no point to create a new Scanner for each line anyway. Then use hasNext to see if there is input.

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        while (scan.hasNext()) {
            String str = scan.nextLine();
            if(str.equals("END")){
                break;
            }
            for (int i = str.length()-1; i >=0; i--) {
                System.out.print(str.charAt(i));
            }
            System.out.println();
        }
    }
}
Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading