반응형
#중요한 정보
System.out.print("나이, 이름, 취업여부? ");
# int형 값을 받을 때.
int age = keyboardScanner.nextInt();
# String형 값을 받을 때.
String name = keyboardScanner.next();
# boolean형 값을 받을 때.
boolean working = keyboardScanner.nextBoolean();
# Scanner는 꼭 사용 후에 닫아주어야한다..
keyboardScanner.close();
# age, name, working 은 각각 정수,문자열,불리언이다. %d, %s, %b 으로 형태를 변환해서 출력함
System.out.printf("%d, %s, %b\n", age, name, working);
각각 정수형,문자형,불리언형으로 값을 입력받을 때에는 위와 같이 코드를 작성해주면된다.
Exam0210 - 키보드 입력 받기 (System.in 과 java.util.Scanner)
[코드]
package bitcamp.ex99;
//# 키보드 입력 받기 - System.in 과 java.util.Scanner
//
import java.util.Scanner;
Scanner keyScan = new Scanner(System.in);
public class Exam0210 {
public static void main(String[] args) {
// 1) 키보드로 입력한 데이터를 읽을 때 사용할 도구를 준비한다.
java.io.InputStream keyboard = System.in;
// 2) InputStream은 바이트 단위로 읽는 기능이 있다.
// 바이트 단위로 읽어서 int나 문자열로 바꾸려면 또 코딩해야 하는 불편함이 있다.
// 이런 불편함을 줄이기 위해 자바에서는 바이트를 개발자가 원하는 값으로
// 바꿔주는 기능이 들어 있는 도구를 제공한다.
// 그 도구가 java.util.Scanner 이다.
// => 키보드를 스캐너에 연결한다.
java.util.Scanner keyboardScanner = new java.util.Scanner(keyboard);
// print()는 문자열을 출력한 후 줄 바꿈을 하지 않는다.
System.out.print("팀명? ");
// nextLine()
// - Scanner 도구를 사용하여 키보드로부터 한 줄의 문자열을
// 가져올 때 사용하는 명령이다.
// - 동작은?
// 사용자가 한 줄 입력할 때까지,
// 즉 입력 데이터에 줄바꿈을 의미하는 0d0a 2바이트가 들어올 때까지 대기한다.
// 사용자가 엔터키를 누르면,
// 입력값으로 0d0a 2바이트 값이 들어오고,
// nextLine()은 그 전까지 들어온 데이터를 문자열로 만들어 리턴한다.
String str = keyboardScanner.nextLine();
// 사용자가 입력한 문자열을 출력한다.
System.out.println(str);
// 스캐너는 사용 후 키보드와의 연결을 끊고 닫는다.
keyboardScanner.close();
}
}
// System.out
// - 표준 출력 장치.
// - 즉 콘솔(모니터, 명령창)을 가리킨다.
// System.in
// - 표준 입력 장치.
// - 즉 키보드를 가리킨다.
[결과값]
Exam0220 - 키보드 입력 받기 (문자열 한 줄 읽기)
[코드]
package bitcamp.ex99;
//# 키보드 입력 받기 - 문자열 한 줄 읽기
//
public class Exam0220 {
public static void main(String[] args) {
java.io.InputStream keyboard = System.in;
java.util.Scanner keyboardScanner = new java.util.Scanner(keyboard);
// 팀 멤버의 정보를 입력 받아 출력하라.
// 이름, 전화, 이메일, 나이, 재직여부
// 예)
// 이름? 홍길동
// 홍길동
// 전화? 1111-2222
// 1111-2222
// 이메일? hong@test.com
// hong@test.com
// 나이? 20
// 20
// 재직여부? y
// y
System.out.print("이름? ");
System.out.println(keyboardScanner.nextLine());
System.out.print("전화? ");
System.out.println(keyboardScanner.nextLine());
System.out.print("이메일? ");
System.out.println(keyboardScanner.nextLine());
System.out.print("나이? ");
System.out.println(keyboardScanner.nextLine());
System.out.print("재직여부? ");
System.out.println(keyboardScanner.nextLine());
keyboardScanner.close();
}
}
[결과값]
Exam0230 - 키보드 입력 받기 (int, float, boolean 값 읽기)
[코드]
package bitcamp.ex99;
//# 키보드 입력 받기 - int, float, boolean 값 읽기
//
public class Exam0230 {
public static void main(String[] args) {
java.util.Scanner keyScan = new java.util.Scanner(System.in);
System.out.print("int: ");
int i = keyScan.nextInt();
// nextInt()는 한 개의 토큰(token)을 읽을 때가지 기다린다.
// 한 개의 token을 읽으면 4바이트 정수 값으로 바꾼 다음에 리턴한다.
// 토큰(token)?
// => 토큰이란 공백으로 구분되는 단어를 뜻한다.
// 공백(whitespace)?
// => 스페이스(space), 탭, 줄바꿈 코드를 말한다.
// 예) aaa bbb cc ==> aaa, bbb, cc
// 중간에 여러 개의 공백이 들어가더라도 한 개의 공백으로 간주한다.
System.out.print("float: ");
float f = keyScan.nextFloat();
System.out.print("boolean: ");
boolean b = keyScan.nextBoolean();
keyScan.close();
System.out.printf("%d, %f, %b\n", i, f, b);
}
}
[결과값]
Exam0240 - 키보드 입력 받기 (여러 종류의 데이터를 섞어 입력 받기)
[코드]
package bitcamp.ex99;
//# 키보드 입력 받기 - 여러 종류의 데이터를 섞어 입력 받기
//
public class Exam0240 {
public static void main(String[] args) {
java.util.Scanner keyboardScanner = new java.util.Scanner(System.in);
System.out.print("나이? ");
int age = keyboardScanner.nextInt();
// nextInt()는 한 개의 토큰을 읽은 후에 줄 바꿈 코드는 읽기 전 상태로 내비둔다.
// 따라서 다음에 nextLine()을 호출하면 의도치 않게 빈 문자열을 가진 한 줄을
// 읽는 상황이 된다.
// nextInt() 다음에 nextLine()을 호출할 때 이런 상황이 발생한다.
// 해결 방법? nextInt()를 호출한 후 남아있는 엔터 코드를 읽어서 제거하라.
keyboardScanner.nextLine(); // 남아 있는 빈 문자열의 한 줄(LF 코드)을 읽어서 버린다.
System.out.print("이름? ");
String name = keyboardScanner.nextLine();
keyboardScanner.close();
System.out.printf("%d(%s)\n", age, name);
}
}
[결과값]
Exam0250 - 키보드 입력 받기 (여러 개의 데이터를 한 번에 입력하고 쪼개서 읽기)
[코드]
package bitcamp.ex99;
//# 키보드 입력 받기 - 여러 개의 데이터를 한 번에 입력하고 쪼개서 읽기
//
public class Exam0250 {
public static void main(String[] args) {
java.util.Scanner keyboardScanner = new java.util.Scanner(System.in);
System.out.print("나이, 이름, 취업여부? ");
int age = keyboardScanner.nextInt();
// 한 개의 토큰을 읽을 때 유용하다.
String name = keyboardScanner.next();
boolean working = keyboardScanner.nextBoolean();
keyboardScanner.close();
System.out.printf("%d, %s, %b\n", age, name, working);
}
}
[결과값]
Exam0260 - 키보드 입력 받기 (토큰 단위로 문자열 읽기)
[코드]
package bitcamp.ex99;
//# 키보드 입력 받기 - 토큰 단위로 문자열 읽기
//
public class Exam0260 {
public static void main(String[] args) {
java.util.Scanner keyboardScanner = new java.util.Scanner(System.in);
// next()
// - 토큰 단위로 입력 데이터를 잘라서 읽을 때 유용하다.
System.out.print("입력: ");
String token1 = keyboardScanner.next();
String token2 = keyboardScanner.next();
String token3 = keyboardScanner.next();
keyboardScanner.close();
System.out.printf("%s, %s, %s\n", token1, token2, token3);
}
}
[결과값]
반응형