import java.util.Scanner;
Scanner scanner = new Scanner(System.in);
String name = scanner.next();
String city = scanner.next();
int age = scanner.nextInt();
double weight = scanner.nextDouble();
boolean isSingle = scanner.nextBoolean();
example
import java.util.Scanner;
public class scanner {
public static void main(String[] args) {
Scanner myObj = new Scanner(System.in); // Create a Scanner object
System.out.println("Enter username");
String userName = myObj.nextLine(); // Read user input
System.out.println("Username is: " + userName); // Output user input
}
}
nextLine()은 엔터 단위로 읽고, 나머지는 공백을 기준으로 분리하여 토큰 단위로 읽는다.
nextLine()은 공백을 포함한 문자열을 입력받을 수 있다.
import java.util.Scanner;
public class scanner {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String str1 = scanner.next(); // today is friday
System.out.println(str1); // today
Scanner scanner2 = new Scanner(System.in);
String str2 = scanner2.nextLine(); // today is friday
System.out.println(str2); // today is friday
}
}
import java.util.Scanner;
public class scanner {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
for (int i = 0; i < 6; i++) {
String number = scanner.nextLine();
System.out.println(number);
}
}
}
Reference: [Java] nextInt( ) 사용 후 nextLine( ) 사용시 문제점 해결 방법
import java.util.Scanner;
public class scanner {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int num;
String str;
System.out.print("num 입력> ");
num = scan.nextInt();
//문제발생 : 개행문자(엔터)가 str에 저장됨
System.out.print("str 입력> ");
str = scan.nextLine();
System.out.println();
System.out.println("num : " + num);
System.out.println("str : " + str);
scan.close();
}
}
output
num 입력> 50
str 입력>
num : 50
str :
해결방법1: scan.nextLine(); 추가
import java.util.Scanner;
public class scanner {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int num;
String str;
System.out.print("num 입력> ");
num = scan.nextInt();
scan.nextLine(); //개행문자(엔터)를 제거하기위해 추가
//문제발생 : 개행문자(엔터)가 str에 저장됨
System.out.print("str 입력> ");
str = scan.nextLine();
System.out.println();
System.out.println("num : " + num);
System.out.println("str : " + str);
scan.close();
}
}
output
num 입력> 50
str 입력> abc
num : 50
str : abc
해결방법2: Scanner.nextLine( )으로 입력받고 Integer.parseInt( )로 변환
import java.util.Scanner;
public class scanner {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int num;
String str;
System.out.print("num 입력> ");
num = Integer.parseInt(scan.nextLine());
System.out.print("str 입력> ");
str = scan.nextLine();
System.out.println();
System.out.println("num : " + num);
System.out.println("str : " + str);
scan.close();
}
}