java.util.Scanner से अगलीलाइन() विधि का उपयोग करने के दौरान मुझे परेशानी हो रही है।scanner.nextLine का उपयोग करना()
यहाँ मैं क्या करने की कोशिश की है:
import java.util.Scanner;
class TestRevised {
public void menu() {
Scanner scanner = new Scanner(System.in);
System.out.print("Enter a sentence:\t");
String sentence = scanner.nextLine();
System.out.print("Enter an index:\t");
int index = scanner.nextInt();
System.out.println("\nYour sentence:\t" + sentence);
System.out.println("Your index:\t" + index);
}
}
उदाहरण # 1: के रूप में इरादा इस उदाहरण काम करता है। String sentence = scanner.nextLine();
System.out.print("Enter an index:\t");
पर जारी रखने से पहले इनपुट दर्ज करने की प्रतीक्षा करता है।
यह आउटपुट का उत्पादन:
Enter a sentence: Hello.
Enter an index: 0
Your sentence: Hello.
Your index: 0
// Example #2
import java.util.Scanner;
class Test {
public void menu() {
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("\nMenu Options\n");
System.out.println("(1) - do this");
System.out.println("(2) - quit");
System.out.print("Please enter your selection:\t");
int selection = scanner.nextInt();
if (selection == 1) {
System.out.print("Enter a sentence:\t");
String sentence = scanner.nextLine();
System.out.print("Enter an index:\t");
int index = scanner.nextInt();
System.out.println("\nYour sentence:\t" + sentence);
System.out.println("Your index:\t" + index);
}
else if (selection == 2) {
break;
}
}
}
}
उदाहरण # 2: इस उदाहरण के रूप में इरादा काम नहीं करता। यह उदाहरण थोड़ी देर के लूप का उपयोग करता है और यदि - और संरचना को उपयोगकर्ता को यह चुनने की अनुमति देता है कि क्या करना है। एक बार प्रोग्राम String sentence = scanner.nextLine();
पर पहुंचने के बाद, यह इनपुट की प्रतीक्षा नहीं करता है बल्कि इसके बजाय लाइन System.out.print("Enter an index:\t");
निष्पादित करता है।
Menu Options
(1) - do this
(2) - quit
Please enter your selection: 1
Enter a sentence: Enter an index:
कौन सा यह असंभव एक वाक्य में प्रवेश के लिए बनाता है:
यह आउटपुट पैदा करता है।
उदाहरण # 2 इरादे के रूप में क्यों काम नहीं करता है? पूर्व के बीच एकमात्र अंतर। 1 और 2 वह है। 2 में थोड़ी देर लूप और एक और संरचना है। मुझे समझ में नहीं आता क्यों यह scanner.nextInt() के व्यवहार को प्रभावित करता है।
संबंधित: http://stackoverflow.com/questions/4708219/weird-behaviour-with-scannernextfloat –
इस पंक्ति से पहले स्ट्रिंग वाक्य = scanner.nextLine(); नीचे पंक्ति sc.nextLine(); – Bravo