▶ Scanner Class
사용자로부터 입력되는 정수, 실수, 문자열을 처리하는 클래스
▶ import 작성
import java.util.Scanner;
▶ Scanner 생성
Scanner sc = new Scanner(System.in);
//System.in 입력받은 값을 바이트단위로 받아들이겠다라는 의미
▶ 입력값 받기
사용자가 입력한 값을 문자열로 받아오는 메서드 : next(), nextLine()
- next() : 사용자가 입력한 값중 "공백"이 있을 경우 공백 이전까지만 출력해줍니다.
- nextLine()
1)사용자가 입력한 값 중 개행(엔터)이 있을 경우 공백에 무관하게 개행이전까지만 출력해준다.
2) \n (개행문자)를 입력버퍼에서 지워주는 역할을 한다.
사용자가 입력한 값을 정수로 받아오는 메소드 : sc.nextInt()
사용자가 입력한 값을 실수로 받아오는 메소드 : sc.nextFloat(), sc.nextDouble()
사용자가 입력한 값을 문자로 받아오는 메소드 : sc.nextLine().charAt(index);
ex) "apple" 문자열 a -> 0번째(인덱스)
▶ 활용 예시
사용자의 인적사항(이름, 나이, 키) 입력받기
public class B_KeyboardInput {
public void inputTest1() {
Scanner sc = new Scanner(System.in)
System.out.print("당신의 이름은 무엇 입니까 : ");
// 입력받고자 하는 내용을 먼저 출력해서 입력을 유도
String name = sc.nextLine();
// 사용자가 엔터를 입력하기 전까지 대기상태
System.out.print("당신의 나이는 몇 살 입니까 : ");
int age = sc.nextInt();
// 사용자가 엔터(개행문자)를 입력하지 전까지 대기상태
sc.nextLine();
// 입력버퍼가 남아있는 엔터를 비워주기 위해 실행
System.out.print("주소 : ");
String address = sc.nextLine();
System.out.print("당신의 키는 몇 cm입니까 : ");
double height = sc.nextDouble();
System.out.println(name+"님은 "+age+"살이고 키는 "+height+"cm입니다 그리고 주소는 : "+ address);
}
}
결과
▶ 총정리
1. 콘솔 창(모니터)에 출력하기 위해 : System.out.printXX() 메서드 이용함
2. 콘솔 창(키보드)으로 입력받기 위해 : Scanner 이용해서 (nextLine(), next(), nextInt(), nextXXX() ... )
> 주의사항
1) sc.nextXXX()메서드 뒤에 sc.nextLine() 메서드가 와야될 경우
sc.nextLine()메서드를 한번 더 명시적으로 선언해주면서 입력버퍼에 남아있는 '엔터'값을 빼주는 과정 필수
2) '문자'값을 입력받아야될 경우
sc.nextLine()메소드로 우선 문자열을 입력받은후 그뒤에 .charAt(인덱스) 메서드를 통해 문자 하나만추출
'JAVA' 카테고리의 다른 글
JAVA(7-1) 연산자(산술연산자) (0) | 2023.03.23 |
---|---|
JAVA(6) 출력문 (0) | 2023.03.23 |
JAVA(4) 형변환(casting) (0) | 2023.03.22 |
JAVA(3) 자료형 (0) | 2023.03.22 |
JAVA(2) 변수와 상수 (0) | 2023.03.22 |