# Scanner로 String 입력 - next( )와 nextLine( )

next( )와 nextLine( ) 모두 Scanner로 String을 입력받을 때 사용하는 것이고, **리턴타입이 String**이므로 **숫자나 다른 형태로 입력받고 싶을 땐 형변환**을 적절하게 해주어야한다!\
ex) int num = **Integer.parseInt(**&#x6C;ine\[1].charAt(0)**)**\
&#x20;     **char cmd = line\[1].charAt(0)**

next( ) : 문자 또는 문자열을 공백을 기준으로 한 단어 또는 한문자씩 입력 받는다.

```java
String s = sc.next();//s = Hello Java

System.out.println(s);//Hello 
```

nextLine( ) : 문자 또는 문장 한 라인 전체를 입력받는다.\
'\n' 을 포함하는 한 라인을 읽고 '\n'을 버린 나머지만 리턴한다.

```java
String s = sc.nextLine();//s = Hello Java

System.out.println(s);//Hello Java
```

**nextInt( )와 nextLine( ) 섞어 사용할 경우 주의 필요**

```java
import java.util.Scanner;
 
public class JavaScanner{
 
    public static void main(String[] args) {
        
        Scanner scan = new Scanner(System.in);
        String name;
        int age;
             
        System.out.println("나이를 입력하세요.");
        age = scan.nextInt();
        System.out.println("이름을 입력하세요.");
        name = scan.nextLine();
 
        System.out.printf("나이는 %d입니다.%n",age);
        System.out.printf("이름은 %s입니다.%n",name);

 scan.close();

    }
 
}
```

> **실행 결과**\
> 나이를 입력하세요\
> 25\
> 이름을 입력하세요.\
> 나이는 25입니다.\
> 이름은     입니다.

nextInt( )와 같이 타입을 지정해서 받는 메소드는 'Enter' 값을 무시하고 해당 타입만 받아 변환하여 반환하는데 이때 컴퓨터 내부에서는 'Enter' 값이 아직 남아있기 때문에 nextLine( )에서 'Enter' 값을 받아들이고 그대로 입력되어 종료된다. \
그렇기 때문에 nextInt( )와 그 다음에 nextLine( )을 함께 사용할 경우 중간에 nextLine( )을 한번 더 사용해주거나 next( )를 사용한다.

**명령어(String) 입력받을 때 - nextLine( ) 사용**

1. **String str = sc.nextLine( );**
2. **String\[ ] line = str.split(" ");**
3. **String cmd = line\[0] 또는 char cmd = line\[0].charAt(0)**

**또는 next( ) 사용**

1. **String cmd = sc.next( )**





