반응형
Java의 Scanner 클래스에서 nextInt() 메소드를 사용하는 것과 nextLine() 메소드를 사용하여 Integer.parseInt() 메소드를 사용하여 int형으로 변환하는 것은 다음과 같은 차이점이 있습니다.
nextInt() 사용
- nextInt() 메소드는 공백 문자(스페이스, 탭, 개행 등)을 구분자로 하여 다음으로 나오는 정수 값을 읽어옵니다.
- 입력받은 문자열을 자동으로 int형으로 변환하므로, 따로 Integer.parseInt() 메소드를 호출할 필요가 없습니다.
- 이 방법의 장점은 코드가 간결하고 쉽게 작성할 수 있다는 것입니다.
하지만 입력받은 정수 값 이후에 문자열이 있을 경우, 문자열을 다음 입력으로 처리하기 때문에 예기치 않은 결과를 가져올 수 있습니다. 예를 들어, 다음과 같은 입력이 있다고 가정해보겠습니다.
Copy code
123 abc
위 입력을 nextInt()를 사용하여 처리하면, 123만 읽어와서 int형으로 변환됩니다. 그리고 다음에 나오는 "abc"는 다음 입력으로 처리됩니다. 이런 경우, nextLine() 메소드를 사용하여 문자열 전체를 읽어와서 처리하는 것이 좋습니다.
nextLine() 및 Integer.parseInt() 사용
- nextLine() 메소드는 개행 문자(\n)를 구분자로 하여 입력받은 전체 문자열을 읽어옵니다.
- 이후에 Integer.parseInt() 메소드를 사용하여 문자열을 int형으로 변환합니다.
- 이 방법의 장점은 정수 이후에 나오는 문자열도 모두 처리할 수 있다는 것입니다.
하지만 코드가 다소 복잡해지고, 입력값이 정수가 아닐 경우 NumberFormatException이 발생할 수 있습니다.
따라서, 입력값에 따라 적절한 메소드를 사용하여 처리하는 것이 좋습니다. 만약 정수 이후에 나오는 문자열도 중요한 데이터이거나 입력값이 복잡하지 않은 경우에는 nextInt()를 사용하여 간단하게 처리하는 것이 좋습니다.
반응형
'Java' 카테고리의 다른 글
[Java] 오버로딩과 오버라이딩 (0) | 2023.04.04 |
---|---|
[Java] Java에서 this, this()란 무엇인가 (0) | 2023.04.03 |
[C] 가위바위보 게임 (0) | 2022.11.28 |
[C] 반복문을 통한 피라미드 쌓기, 별 찍기 (0) | 2022.11.28 |
[C] 반복문을 통한 구구단 만들기 (0) | 2022.11.27 |