티스토리 뷰
반응형
1. 자바에서 키 입력
System.in
- System.in 은 키보드 장치를 직접 제어하고 키 입력을 받는 표준 입력 스트림 객체이다.
- 입력된 키를 바이트 정보로 제공하기 때문에 응용프로그램은 이 정보를 다시 문자나 숫자로 변환해야 한다.
Scanner 객체 생성
Scanner scan = new Scanner(System.in);
- 응용프로그램이 키 입력을 쉽게 받을 수 있도록 자바에서 제공하는 클래스이다.
- Scanner객체는 System.in 객체를 이용하여 키보드로 바이트 정보를 입력받고,
자바 응용프로그램이 원하는 타입으로 변환하여 리턴한다.
import
- 스캐너 객체를 생성하면 빨간 줄로 오류가 표시된다.
- 자바에서 제공하는 Scanner 클래스를 사용하기 위해서는 Import를 해야한다.
- ctrl + shift + o(영어) (import 단축키)
또는 빨간줄(오류표시)에 마우스를 대면 오류 메시지 확인 가능 (import 'Scanner'(java.util) 클릭)
import java.util.Scanner;
Scanner 클래스의 주요 메소드
메소드 | 설명 |
String next() | 다음 토큰을 문자열로 리턴 |
byte nextByte() | 다음 토큰을 byte 타입으로 리턴 |
short nextShort() | 다음 토큰을 short 타입으로 리턴 |
int nextInt() | 다음 토큰을 int 타입으로 리턴 |
long nextLong() | 다음 토큰을 long 타입으로 리턴 |
float nextFloat() | 다음 토큰을 float 타입으로 리턴 |
double nextDouble() | 다음 토큰을 double 타입으로 리턴 |
boolean nextBoolean() | 다음 토큰을 boolean 타입으로 리턴 |
String nextLine() | '\n'을 포함하는 한 라인을 읽고 '\n'을 버린 나머지 문자열 리턴 |
void close() | Scanner의 사용 종료 |
boolean hasNext() | 현재 입력된 토큰이 있으면 true, 아니면 입력될 때까지 무한정 대기 새로운 입력이 들어올 때 true리턴, ctrl-z 키가 입력되면 입력 끝이므로 false 리턴 |
2. next() 와 nextLine()
- next() 는 공백이 낀 문자열을 읽을 수 없다.
- nextLine()은 <Enter>키의 입력을 기다리며 <Enter>키 입력 시 빈 문자열("")을 리턴한다.
next()
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
// next()
Scanner scan = new Scanner(System.in);
String str = scan.next();
System.out.println(str);
}
}
- 한 줄에 Hello World!를 입력 했는데 str에는 Hello만 담겨 있음을 확인
nextLine()
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
// nextLine()
Scanner scan = new Scanner(System.in);
String str = scan.nextLine();
System.out.println(str);
}
}
- nextLine()은 공백 유무와 상관없이 읽음
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
// nextLine()
Scanner scan = new Scanner(System.in);
String str = scan.nextLine();
String str2 = scan.nextLine();
String str3 = scan.nextLine();
System.out.println(str);
System.out.println(str2);
System.out.println(str3);
}
}
- nextLine()은 줄바꿈 시 ""(빈문자)로 리턴
3. Scanner 객체 닫기
scan.close();
- Scanner 객체가 닫히면 System.in도 함께 닫혀서 키 입력을 받을 수 없음
- Scanner 객체를 여러개 생성해도 System.in을 공유하므로 한 군데서 Scanner.close()를 호출하여 객체를 닫아버리면 System.in도 닫혀서 다른 Scanner객체에서도 키 입력을 받을 수 없게 된다.
- 응용프로그램에서 Scanner를 닫는 코드가 없으면 컴파일 시 warning(노란 표시) 경고가 발생하지만 실행에는 문제 없다.
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String str = scan.nextLine();
System.out.println("입력받은 수 >> " + str);
scan.close();
Scanner scanner = new Scanner(System.in);
String str2 = scanner.nextLine();
System.out.println("입력받은 수 >> " + str2);
}
}
4. 예제 연습
숫자를 입력 받아 제곱 계산기를 만들어보자
import java.util.Scanner;
public class Ex01 {
public static void main(String[] args) {
// 1. 입력하기를 통해
// 2. 제곱계산기 만들어보자
Scanner scan = new Scanner(System.in);
System.out.println("=======제곱 계산기=======");
System.out.println("숫자를 입력해주세요 >>");
int num = scan.nextInt();
System.out.println(num + " * " + num + " = " + num*num);
}
}
두 숫자를 입력받아 두 수의 합을 출력해보세요
import java.util.Scanner;
public class Ex02 {
public static void main(String[] args) {
// 두 숫자를 입력받아 두 수의 합을 출력
Scanner scan = new Scanner(System.in);
System.out.println("첫번째 숫자를 입력해주세요 >> ");
int num1 = scan.nextInt();
System.out.println("두번째 숫자를 입력해주세요 >> ");
int num2 = scan.nextInt();
System.out.println("결과 : " + (num1 + num2));
}
}
반응형
'JAVA' 카테고리의 다른 글
[Java] 조건문(if문, if-else, switch-case) (0) | 2022.03.11 |
---|---|
[Java] 연산자 및 연산자 우선순위 (0) | 2022.03.09 |
[Java] 변수와 자료형, 형변환 (0) | 2022.03.07 |
[Java]자바 소스 코드와 컴파일 (0) | 2022.03.06 |
[Java/Windows11] 이클립스 설치하기 (0) | 2022.03.03 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- jdk설치
- 객체
- 다형성
- git계정여러개
- 메소드
- git계정
- 상속
- java
- 리눅스
- spring
- 명령어
- springboot
- amazon eventbridge
- ssh-key
- 자바
- 모놀리식vsmsa
- msa전환
- 이클립스
- 티스토리챌린지
- 오버로딩
- linux
- 오블완
- the given id must not be null
- eclipse
- 멀티계정
- 폴더개수
- 파이썬
- MSA
- smart tomcat
- 생성자
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함