본문 바로가기
JAVA

자바 스캐너 사용법 ( java scanner ) 정리

by helloissue 2021. 10. 1.

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

 

자바스캐너정리
자바스캐너정리


1. ( 문자열 , 숫자열 ) 종류별 스캐너 사용법

스캐너-문자열 입력받기

렙을 잘하려면 북-치기박-치기만 잘하면 되듯 스캐너는 숫자냐, 문자냐만 잘 구분하면 됩니다.
숫자일 땐 nextInt()

, 문자일 땐 두 번째 함수인 next() 

를 기억하면 됩니다.  

1
2
3
4
5
6
7
8
9
Scanner scan        = new ScannerSystem.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 ScannerSystem.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 ScannerSystem.in );
         
forint 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 ScannerSystem.in );
 
System.out.print("월을 입력하세요 : "); 
 
switch ( scan.nextInt() ) {
 
    case 12case 1case 2:
        System.out.println("겨울"); break;
    case 3case 4case 5:
        System.out.println("봄");  break;
    case 6case 7case 8:
        System.out.println("여름"); break;
    case 9case 10case 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 ScannerSystem.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 <= 999break;}
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 ScannerSystem.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 ScannerSystem.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

 

댓글