Friday, November 17, 2006
Java/자바] 키보드 입력; 사용자 문자열/숫자 입력 받기; User Input String, Number
자바에서는 Scanner 클래스의
nextLine()
nextDouble()
nextInt()
등의 메소드(함수)를 사용하여, 키보드로부터 사용자의 입력을 문자열이나 숫자의 형식으로 받을 수 있습니다. (Scanner 는, 사진 스캔하는 "스캐너"와는 아무 상관이 없습니다.)
다음 예제에서 System.in 은 키보드 등의 입력 장치를 의미합니다.
소스 파일명: Foo.java
※ 아래 박스 클릭 후, 키보드 화살표 키로 좌우 스크롤 가능함
잘못 입력했을 때, 다시 입력 받는 법: ▶▶ Java 자바] 실수 입력 받기, 키보드로, 에러 처리 루프; Input Float Number Loop
정수만 입력 받기: ▶▶ Java 자바] 정수 숫자 입력 받기, 16진수 헥사 입력; Input Hex Int Number Only
그렇지만 프로그램 내부에서 데이터를 입력받는 것보다, 자바 프로그램 실행시에 명령행 옵션으로 받는 것이 더 편리합니다. 즉 args[] 배열로 데이터를 입력받는 것이 보통입니다: ▶▶ Java/자바] main()의 String args[] 배열 용도, 사용법 예제
간단히 Yes/No 만 물어볼 경우에는 다음 방법을 사용하면 됩니다: ▶▶ 자바Java] (Yes/No)? (Y/N)? (예/아니오)? 키보드로 입력 받기, 묻기
nextLine()
nextDouble()
nextInt()
등의 메소드(함수)를 사용하여, 키보드로부터 사용자의 입력을 문자열이나 숫자의 형식으로 받을 수 있습니다. (Scanner 는, 사진 스캔하는 "스캐너"와는 아무 상관이 없습니다.)
다음 예제에서 System.in 은 키보드 등의 입력 장치를 의미합니다.
nextLine(): 키보드로부터 직접 사용자 입력 받는 예제 소스
소스 파일명: Foo.java
※ 아래 박스 클릭 후, 키보드 화살표 키로 좌우 스크롤 가능함
import java.util.*;
public class Foo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 키보드로부터 문자열 입력받기
System.out.print("아무 문자열이나 입력해 보세요: ");
System.out.println(sc.nextLine());
// 키보드로 입력한 문자열이 그대로 출력됩니다.
// 키보드로부터 실수형 숫자 입력받기 (정수형 입력해도 됨)
// 숫자가 아닌 문자를 입력하면 InputMismatchException 발생
System.out.print("아무 실수나 입력해 보세요: ");
double d = sc.nextDouble();
System.out.println(d + 1);
// 키보드로 입력한 숫자(64비트 실수)에 1을 더하여 출력
// 그런데 만약 이 부분에서 숫자를 100 200 이렇게 2개 입력하면
// 아래의 정수 입력 예제에 200 이라는 값이 자동으로 들어가 버립니다
// 정수 입력받기 (실수형 입력하면 에러남)
System.out.print("아무 정수나 입력해 보세요: ");
try { // 1.0 등의 실수를 잘못 입력한 경우 에러 처리
System.out.println(sc.nextInt() + 1);
} catch (InputMismatchException ime) {
System.err.println("에러! 정수가 아닌 실수/문자를 입력하셨군요: " + ime);
System.exit(1);
}
// 키보드로 입력한 정수에 1을 더하여 출력
}
}
public class Foo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 키보드로부터 문자열 입력받기
System.out.print("아무 문자열이나 입력해 보세요: ");
System.out.println(sc.nextLine());
// 키보드로 입력한 문자열이 그대로 출력됩니다.
// 키보드로부터 실수형 숫자 입력받기 (정수형 입력해도 됨)
// 숫자가 아닌 문자를 입력하면 InputMismatchException 발생
System.out.print("아무 실수나 입력해 보세요: ");
double d = sc.nextDouble();
System.out.println(d + 1);
// 키보드로 입력한 숫자(64비트 실수)에 1을 더하여 출력
// 그런데 만약 이 부분에서 숫자를 100 200 이렇게 2개 입력하면
// 아래의 정수 입력 예제에 200 이라는 값이 자동으로 들어가 버립니다
// 정수 입력받기 (실수형 입력하면 에러남)
System.out.print("아무 정수나 입력해 보세요: ");
try { // 1.0 등의 실수를 잘못 입력한 경우 에러 처리
System.out.println(sc.nextInt() + 1);
} catch (InputMismatchException ime) {
System.err.println("에러! 정수가 아닌 실수/문자를 입력하셨군요: " + ime);
System.exit(1);
}
// 키보드로 입력한 정수에 1을 더하여 출력
}
}
잘못 입력했을 때, 다시 입력 받는 법: ▶▶ Java 자바] 실수 입력 받기, 키보드로, 에러 처리 루프; Input Float Number Loop
정수만 입력 받기: ▶▶ Java 자바] 정수 숫자 입력 받기, 16진수 헥사 입력; Input Hex Int Number Only
그렇지만 프로그램 내부에서 데이터를 입력받는 것보다, 자바 프로그램 실행시에 명령행 옵션으로 받는 것이 더 편리합니다. 즉 args[] 배열로 데이터를 입력받는 것이 보통입니다: ▶▶ Java/자바] main()의 String args[] 배열 용도, 사용법 예제
간단히 Yes/No 만 물어볼 경우에는 다음 방법을 사용하면 됩니다: ▶▶ 자바Java] (Yes/No)? (Y/N)? (예/아니오)? 키보드로 입력 받기, 묻기
tag: java
자바 | Java
int i=1;
while(i==1)
/*반복 하고 싶은 프로그램 코딩 */
System.out.print("계속 1, 종료 anykey : ");
try{
i = Integer.parseInt(scan.nextLine().trim());
}catch(NumberFormatException ime){
i=0; //숫자 입력해야 하는데 문자 입력 되면 종료
//while에서 1을 조건으로 주었기에 1이 아니면 무조건 종료
}
<< Home