자바 스캐너는 가장 쉽게, 사용자로부터 문자열 또는 숫자 열등의 사용자 입력을 받을 수 있게 하는 클래스입니다. 즉 스캐너만 있다면 사용자의 입력을 받을 수 있습니다. 이런 스캐너를 이용하여 가장 큰 수 또는 작은 수등을 구해보면서 스캐너의 사용법을 알아보겠습니다.

1. ( 문자열 , 숫자열 ) 종류별 스캐너 사용법
스캐너-문자열 입력받기
렙을 잘하려면 북-치기와 박-치기만 잘하면 되듯 스캐너는 숫자냐, 문자냐만 잘 구분하면 됩니다.
숫자일 땐 nextInt()
, 문자일 땐 두 번째 함수인 next()
를 기억하면 됩니다.
1
2
3
4
5
6
7
8
9
|
Scanner scan = new Scanner( System.in );
System.out.print("숫자 입력하셔 ? ");
int i숫자 = scan.nextInt();
System.out.println("숫자= "+i숫자);
System.out.print("문자 입력하셔 ? ");
String s문자 = scan.next();
System.out.println("문자= "+s문자);
|
스캐너-한 글자만 입력받기
문자를 입력받기 위해서는 next(). charAt(0) 매소드를 통해서 입력을 받을 수 있습니다.
1
2
3
4
5
6
7
|
Scanner scan = new Scanner( System.in );
System.out.print("한글자 입력하셔 ? ");
char c글자 = scan.next().charAt(0);
System.out.println("글자= "+c글자);
//한글자 입력하셔 ? ㅁ
//글자= ㅁ
|
cs |
2. 자바 스캐너 여러 번, 연속으로 여러 개 입력받기
for문이나 while문을 통해 여러 번 입력이 가능합니다.
Q 스캐너를 통해 3개의 정수를 입력받아서 합계 및 평균을 구하시오.
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
|
int iMax = 0;
int iMin = 999999999;
int iNnum = 0;
int[] iArr = new int[3];
int iTotal = 0;
Scanner scan = new Scanner( System.in );
for( int i=0; i < iArr.length; i++ ) {
System.out.print( (i + 1) + " 번째 수를 입력하세요.");
iNnum = scan.nextInt();
iArr[i] = iNnum;
}
for(int i : iArr) {
iTotal = iTotal + i;
iMax = Math.max(i, iMax);
iMin = Math.min(i, iMin);
}
System.out.print( " 합계 = " + iTotal );
System.out.print( ", 평균 = " + ( double ) iTotal / iArr.length );
System.out.print( ", 최대값 = " + iMax);
System.out.print( ", 최소값 = " + iMin);
//1 번째 수를 입력하세요.3
//2 번째 수를 입력하세요.1
// 합계 = 6, 평균 = 2.0, 최대값 = 3, 최소값 = 1
|
cs |
3. 스캐너 닫기는 어떻게 하나요?
1
|
if( scan != null ) scan.close();
|
cs |
스캐너를 다 사용하신 뒤 제일 마지막에 close로 닫아 주시면 됩니다.
4. 월을 입력받아 4계절 [ 봄, 여름, 가을, 겨울 ]을 판단하는 프로그램 예제
다음은 스캐너를 활용하는 예제로써,
1월에서 ~12월까지의 월을 입력받아 무슨 계절인지를 체크하는 프로그램 예제입니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
System.out.println("월에서 12월까지 월을 입력 받아서");
System.out.println("봄/여름/가을/겨울을 판단하는 프로그램을 작성해주세요.");
Scanner scan = new Scanner( System.in );
System.out.print("월을 입력하세요 : ");
switch ( scan.nextInt() ) {
case 12: case 1: case 2:
System.out.println("겨울"); break;
case 3: case 4: case 5:
System.out.println("봄"); break;
case 6: case 7: case 8:
System.out.println("여름"); break;
case 9: case 10: case 11:
System.out.println("가을"); break;
}scan.close();
|
cs |
5.태어난년도를 입력받아 띠를 구하는 프로그램 예제
자신의 태어난년도를 입력받아 무슨 띠인지를 구하는 프로그램입니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
System.out.println("태어난 년도를 입력받아 띠를 구하는 프로그램");
String arrZodiac[] = { "원숭이", "닭", "개", "돼지" ,"쥐" ,"소",
"호랑이", "토끼", "용", "뱀", "말", "양"}; Scanner scan = new Scanner( System.in );
int iYyyy = 0;
while (true) {
System.out.print("당신의 태어난 년도를 입력하세요(0입력시종료):");
iYyyy = scan.nextInt(); if( iYyyy > 999) {
System.out.println( iYyyy+"년도에 태어난 당신은"+arrZodiac[ iYyyy % 12]+"띠 입니다.");
}
if( iYyyy <= 999) break;}
scan.close();
//당신의 태어난 년도를 입력하세요(0입력시종료):1999
//1999년도에 태어난 당신은 토끼띠 입니다.
|
cs |
6. 배열의 크기를 입력받아 그 크기만큼의 성적을 관리하는 프로그램 예제
성적은 랜덤함수를 이용하여 임의의 점수를 저장한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
System.out.println("배열의 크기를 입력받아 int형 배열을 생성한다");
System.out.println("성적은 Math클래스의 random 메소드를 사용하여 배열에 저장한다.");
Scanner scan = new Scanner( System.in );
int iCh = 0;
System.out.print("배열의크기를 입력하세요."); iCh = scan.nextInt();
int[] asTemp = new int[iCh];
for(int i=0; i < asTemp.length; i++) asTemp[i] =(int)( Math.random() * ( 100 ))+1;
for(int ii : asTemp) System.out.println(ii);
scan.close();
|
cs |
6. 단어를 입력받아 단어수를 세는 프로그램 예제
책의 내용이 저장되어 있고 유저로부터 단어한개를 입력받아 단어의 개수를 체크하는 프로그램 예제입니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
String sTemp = "1인 가구가 늘고 코로나19로 외식도 자제하면서"
+" 반찬을 사 먹는 사람들이 늘고 있는데요."
+" 반찬이 그예입니다.사과";
Scanner scan = new Scanner( System.in );
System.out.print("검색하려는 문자를 입력하세요 .");
String s문자 = scan.next();
if(!"".equals( s문자 )&& s문자 != null) {
System.out.print("입력한문자 => [ "+s문자 +" ] 갯수는 => ");
System.out.println( (("["+sTemp+"]").split(s문자).length)-1 );
}
|
cs |
검색하려는 문자를 입력하세요 .반찬
입력한문자 => [ 반찬 ] 갯수는 => 1
마치면서 도움이 되셨다면 하트를 눌러주시길 바랍니다. 지속적인 포스팅에 도움이 됩니다.
[관련글]
스캐너에서 자주발생되는 에러입니다. 참고하셔서 에러로부터 벗어나세요.
입력형식오류, InputMismatchException (in java)
입력형식오류, InputMismatchException (in java)
자바 스캐너를 활용하여, 프로그램을 코딩하던 중에 만나는 InputMismatchException에 대해 알아보겠습니다. 간단하게는 정수를 입력하게 되어있으나, 정수의 내용이 아닌 문자형태가 오면서 발생하
sayit.tistory.com
'JAVA' 카테고리의 다른 글
문자열 비교 equals() VS 숫자열 비교 == (1) | 2021.10.09 |
---|---|
매소드 확장 오버로딩 vs 매소드 재정의 오버라이딩 (0) | 2021.10.08 |
이클립스 빨간색 엑스표시 떳을때 ( Unresolved compilation problems ) 해결 방법 (1) | 2021.09.30 |
이클립스 아무것도 안뜰때, 프로젝트 목록 창이 없을때 추가하는 방법 (1) | 2021.09.29 |
Failed to find a Main Class ( in ECLIPSE ) (2) | 2021.09.22 |
댓글