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