728x90
입력
코틀린에서는 자바와 같이 Scanner를 이용해서 입력을 받을 수 있다.
import java.util.*
fun main() {
val a = readLine()
print("a를 정수로 변환합니다. ${a!!.toInt()}")
val s = Scanner(System.`in`)
val b = s.next()
print("b를 정수로 변환합니다. ${b.toInt()}")
val c = s.nextLine()
print("c를 정수로 변환합니다. ${c.toInt()}")
}
1. readline()
readline() 은 String? 타입으로 입력을 받는다. 그렇기에 반드시 다른 type으로 변환할 때에는 !! 를 써줘야 한다.
개행문자로 구분한다.
※ String? = String 이지만 null 타입을 허용한다는 의미이다.
※ a!! = a가 null을 허용하는 타입이지만, null이 아니라고 개발자가 강제적으로 알려줘서 type을 변환하는 것이다.
[ null 이면 코틀린에서는 type 변환이 불가능하다.]
2. next()
스캐너를 이용해서 next를 입력하면 String 타입으로 문자 혹은 문자열을 입력 받는다.
공백 혹은 개행문자 기준으로 입력 받는다.
※next()의 자매품으로 nextInt() nextDouble() 등 자매품이 많으니 애용(?)하시면 됩니다.
3. nextLine()
String 타입으로 문자 혹은 문자열을 입력받는다. 단지 next와 다른 점은 공백도 같이 받으며 개행문자로 구분이 된다.
※ 예외 사항
import java.util.*
fun main() {
val s = Scanner(System.`in`)
val a = s.nextInt()
val n = s.nextInt()
s.nextLine()
val line = s.nextLine()
val arr = line.split(" ")
for(it in arr){
if(it.toInt() < n)
print("$it ")
}
}
두 개의 수와 다음 줄에는 여러 수를 한 줄로 입력받아서 n보다 작은 수는 출력해주는 코드입니다.
보면 두 개의 수 다음에 s.nextLine() 수를 받은 후에 다음 줄에 입력을 받는 것을 알 수 있습니다.
엔터를 입력과정에서 nextInt()와 nextLine() 두개가 동시에 입력되기에 헛으로 하나를 입력받습니다.
728x90
'Programming > Kotlin' 카테고리의 다른 글
[Kotlin/코틀린] String filter (0) | 2020.10.04 |
---|---|
[Kotlin/코틀린] 배열 (0) | 2020.10.04 |
[Kotlin] 제네릭 / Generic (0) | 2020.03.19 |
[Kotlin] 연산자 오버로딩 (0) | 2020.03.18 |
[Kotlin] 내부 클래스(2) (0) | 2020.03.18 |