728x90
Kotlin에서 입력값 받는 방법을 정리해보겠다! Java랑 비슷한데 코드로 작성해보면 살짝 다르기 때문에 비교해서 기록해보겠다.
Scanner로 입력 받는 방법도 있지만 이건 속도가 느리기 때문에 나는 무조건 BufferedReader, InputStreamReader를 사용한다. 코드는 조금 길어져도 속도는 좀더 빠르다
Java
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String input = br.readLine(); // 문자열일때
int input = Integer.parseInt(br.readLine()); // 정수일때
Kotlin
val br = BufferedReader(InputStreamReader(System.`in`))
val input = br.readLine() // 문자열일 때
val input = br.readLine().toInt() // 정수일 때
기본적으로 입력 받는 방법은 위와 같은데, 공백으로 구분해서 한 줄에 여러 데이터가 입력되면 StringTokenizer를 이용해줘야 한다! Java와 Kotlin의 차이라고 할 만한 건... kotlin은 System.in에서 in을 ``로 묶어줬다는 점 정도?
Java
StringTokenizer st = new StringTokenizer(br.readLine());
int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
int c = Integer.parseInt(st.nextToken());
Kotlin
var st = StringTokenizer(br.readLine())
var a = st.nextToken().toInt()
var b = st.nextToken().toInt()
var c = st.nextToken().toInt()
1 2 3
이런 식으로 공백을 두고 정수 3개가 입력됐다는 가정하에 코드를 짜보면 위와 같다.
Kotlin에서 입력 받는 또다른 형태가 있는데...
fun main(args: Array<String>) = with(System.`in`.bufferedReader()) {
val input = readLine()
}
위처럼 입력 받을 수도 있다고 한다. 나는 자바에서 첫번째 방법처럼 하던 게 익숙해서 코틀린에서도 그렇게 작성하는 게 편할 것 같다.
< 참고 >
728x90
'Programming > Kotlin' 카테고리의 다른 글
[백준/Kotlin] 계란으로 계란치기(16987) (0) | 2024.05.05 |
---|---|
[백준/Kotlin] 소문난 칠공주(1941) (0) | 2024.05.05 |
[백준/Kotlin] 신기한 소수(2023) (0) | 2024.05.04 |
[백준/Kotlin] 감시(15683) (0) | 2024.05.04 |
[Kotlin] Mac + VScode + Kotlin 개발환경 세팅 (0) | 2024.05.03 |