세상을 더 편리하게
article thumbnail
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
profile

세상을 더 편리하게

@쵱니

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!