Thursday, 27 July 2017

java - .nextLine() method does not take subsequent String inputs

Answer


Answer





I have a program that asks the user for an input of numbers and characters. For this I am using a Scanner class. But when I take two subsequent string inputs, the console just moves and asks the user to input the second string. The user is unable to input the first string. I have attached my code below to be more specific.



import java.util.Scanner;

class XYZ {

public static void main(String args[]) {

int x, y, z, b, c;
String p, q;
Scanner sc = new Scanner(System.in);

System.out.println("Enter a number");
b = sc.nextInt();

System.out.println("Enter a new number");
c = sc.nextInt();


System.out.println("Enter a String");
p = sc.nextLine();

System.out.println("Enter a new String");
q = sc.nextLine();

System.out.println("Enter a number");
x = sc.nextInt();

System.out.println("Enter 2nd number");

y = sc.nextInt();

System.out.println("Enter 3rd number");
z = sc.nextInt();

ABC a = new ABC();

a.PQR(b, c);
a.PQR(p, q);
a.PQR(x, y, z);

}
}

class ABC {

void PQR(int a, int b) {
int res = a + b;
System.out.println("The sum is" + " " + res);
}


void PQR(String a, String b) {
System.out.println("Thye concataneted string is" + a + " " + b);
}

void PQR(int a, int b, int c) {
int res = a * b * c;
System.out.println("The product is" + " " + res);
}
}


Answer



You need to make a dummy call to nextLine() after your call to nextInt(). The nextInt() isn't taking the "\n" into account.



Alternatively, and preferably, just use nextLine() to accept all input and whichever ones need to be ints, just use:



int i = Integer.parseInt(**string**);


Does this help?


No comments:

Post a Comment

casting - Why wasn't Tobey Maguire in The Amazing Spider-Man? - Movies & TV

In the Spider-Man franchise, Tobey Maguire is an outstanding performer as a Spider-Man and also reprised his role in the sequels Spider-Man...