본문 바로가기
Java/Java 기초문법

[JAVA 기초] 자바 표준 입력 Scanner 클래스로 문자입력받기

by dev수니 2021. 3. 2.
반응형

Scanner 클래스를 사용하기 위해서는 먼저 Scanner 클래스를 참조하는 참조변수를 생성해줘야 한다.

또한 import를 통해 외부 클래스를 호출해야 하는데 Scanner는 java.util 패키지에 포함되어있다.


Scanner 객체 생성 방법

 

1. 다음과 같이 Scanner input = new Scanner까지 입력 후 ctrl+space 하면 자동완성이되고

2. Enter하면 다음과 같이 import가 자동 호출된다. 

3. 다음과 같이 File source를 System.in으로 해준 후 참조변수를 이용해서 input.nextLine(); 부분에 사용자에게 값을 입력받는다. 입력을 받고 나면 id라는 문자형 변수에 입력내용이 저장된다.

4. ctrl+f11 하면 다음과 같이 sysout 내용이 출력되고, 사용자가 id 변수에 저장될 값을 입력할 수 있어진다. (초록색이 입력한 값)


Scanner 클래스의 여러가지 메소드

① next() : 공백 이전까지의 문자열을 입력받음.

② nextInt(), nextDouble() : 정수, 실수 등을 입력받음. next + 자료형()

③ nextLine() : 문자열 전체를 입력받음

④ next().charAt() : 문자 하나를 입력받음.

 

※ next()와 nextLine() 를 혼용할 경우 조심해야한다. 다음과 같이 코드를 짠 후,

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

package java_practice;

 

import java.util.Scanner;

 

public class nextLine {

 

    public static void main(String[] args) {

        // TODO Auto-generated method stub

        Scanner sc = new Scanner(System.in);

        

        String age = sc.next();

        String name = sc.next();

        String gender = sc.nextLine();

        String hobby = sc.nextLine();

        

        System.out.println(age);

        System.out.println(name);

        System.out.println(gender);

        System.out.println(hobby);

        

        sc.close();

    }

}

Colored by Color Scripter

cs

출력 결과는 다음과 같다.

20 + space + soonipy + enter + 여 + enter

next는 개행 또는 공백을 입력받을 때까지만 읽다보니 age에 20이 저장되고 name에 soonipy가 저장된다.

 

그리고 다음 메소드는 nextLine()이라서 한 줄을 읽는데 앞에 soonipy를 입력하고 개행(space/enter)가 남아있어 이 개행이 바로 gender에 저장되고 hobby로 넘어가버리게 되는 것이다.

 

따라서 next()와 nextLine()를 혼용해서 쓸 경우 next() 다음 nextLine()를 추가해야한다.

결과는 다음과 같다.

 

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

package java_practice;

 

import java.util.Scanner;

 

public class nextLine {

 

    public static void main(String[] args) {

        // TODO Auto-generated method stub

        Scanner sc = new Scanner(System.in);

        

        String age = sc.next();

        String name = sc.next();

        sc.nextLine();        

        String gender = sc.nextLine();

        String hobby = sc.nextLine();

        

        System.out.println(age);

        System.out.println(name);

        System.out.println(gender);

        System.out.println(hobby);

        

        sc.close();

    }

}

 

Colored by Color Scripter

cs

출력결과는 다음과 같다.

 

 

 

반응형

댓글