इसलिए मैं कुछ अभ्यास के लिए एक छोटा पाठ साहसिक बनाने की कोशिश कर रहा हूं और मैं चीजों को थोड़ा सा सरल बनाना चाहता हूं। इसलिए मैंने एक वर्ग बनाया जो मेरे टेक्स्ट आउटपुट और उम्मीद के इनपुट को संभालता है। इसने पहली बार काम किया जब मैंने कुछ इनपुट करने का प्रयास किया, लेकिन जब मैं फिर से कोशिश करता हूं तो कोड NoSuchElementException फेंकता है।

यहाँ प्रिंटर वर्ग ''' है

package Printer;

import java.util.Scanner;

public class echo {

   public static void print(String x) {

    System.out.print(x);

}

public static String y;

public static String get(String x) {

    Scanner inputx = new Scanner(System.in);
    
    System.out.println(x);

    y = inputx.nextLine();
    
    inputx.close();

    return y;
    
   }
}

जिस हिस्से पर मैं काम कर रहा हूं

package story;

import Printer.echo;

import java.util.concurrent.TimeUnit;

public class MainStory {

public static void main(String[] args) throws InterruptedException {
    
    
    
    echo.print("hello user and welcome to my dungeon \n");

    echo.get("are you willing to go thru 100 floors each more deadlier "

            + "than the next");
    
    
    if(echo.y.equals("yes")) {

        echo.print("well what ya waiting for, lets hurry up and "

                + "pick your first class \n");

        TimeUnit.MILLISECONDS.sleep(500);

        echo.print("wait I'm supposed to give a list, "

                + "hold on give me like 2 seconds to fetch the list off my drive \n");

        TimeUnit.SECONDS.sleep(2);

        echo.print("ok here it is in its full glory");

        echo.print("List of classes in Project: Ordus");

        echo.print("Tank");

        echo.print("Rogue");

        echo.print("DPS");

        echo.print("each class has a sus set of skills that "

                + "allow it to blossom into a very cool run");

        echo.get("what shall it be \n");
        
        String input = echo.y;
        
        if(input.equals("tank") && echo.y.equals("Tank")) {

            echo.print("your a tank");
            
        }

        if(input.equals("rogue") && echo.y.equals("Rogue")) {

            echo.print("your a Rogue");
            
        }

        if(input.equals("DPS") && echo.y.equals("dps")) {

            echo.print("your a dps");
            
        }
        
        
        
        
        echo.print("this is the end of the story so far");

        echo.print("plese wait for a update in the near future");
        
    }

    else {
        
    }
    
}






}

मैं उपयोगकर्ता इनपुट से पहले स्ट्रिंग को फिर से साफ़ करने का प्रयास करना चाहता हूं ताकि मुझे त्रुटि से छुटकारा मिल सके।

0
Nev 10 अक्टूबर 2020, 12:31

1 उत्तर

सबसे बढ़िया उत्तर

यह स्कैनर को बंद न करने के लिए पर्याप्त होगा, इसलिए बस inputx.close() लाइन को हटा दें।

-2
1NO0B 10 अक्टूबर 2020, 11:34