변수 타입간 변환의 중요성
하나의 변수 타입을 다른 변수 타입으로 제대로 변환하는 것은 프로그램을 만들면서 헷갈리는 방법 중 하나이다. 이번 글에서는나중에 헷갈릴 때 쉽게 찾을 수 있도록 다양한 변환 방법에 대해 정리해보려고 한다. 아래에서 다루는 변환 방법 중 하나만 알아도 변환이 가능하지만, 다양하게 변환 방법을 알아두지 않으면 막상 코드를 짤 때 헷갈릴 수 있으므로, 모두 알아두도록 하자.
Int를 String으로 변환하기
Kotlin에서 Int를 String으로 변환하기 위해서는 세가지 방법이 존재한다. 각각에 대해 알아보자.
- 확장함수 Int.toString()을 사용하는 방법
- 템플릿 리터럴을 사용하는 방법
확장함수 Int.toString()을 사용하는 방법
Kotlin은 Primitive Type에 대한 다양한 확장 함수를 제공한다. Int에 대해 제공하는 toString() 또한 그 중 하나이다. Int.toString()은 Int를 String으로 변환해준다. 예를 들어 1을 "1"로 변환해준다. 사용법은 아래와 같다.
fun main() {
val int : Int = 1
println(int.toString())
}
템플릿 리터럴을 사용하는 방법
Kotlin에서는 템플릿 리터럴을 지원한다. 템플릿 리터럴은 String 내부에 변수나 연산의 결과를 넣을 수 있도록 만들어주는 것이다. 아래와 같이 사용할 수 있다.
fun main() {
val int: Int = 1
println("$int")
}
String을 Int로 변환하기
String을 Int로 변환하기 위해서는 아래와 같은 방법을 사용할 수 있다.
- 확장함수 String.toInt()을 사용하는 방법
- Integer.parseInt(string: String)을 사용해 Int로 변환하는 방법
확장함수 String.toInt()을 사용하는 방법
String.toInt()를 사용하면 String을 Int로 변환할 수 있다. 아래와 같이 사용할 수 있다.
fun main() {
val intString: String = "12"
println(intString.toInt())
}
Integer.parseInt(string: String)을 사용해 Int로 변환하는 방법
이 방법은 Java를 사용하던 사람이라면 익숙할 것이다. Java는 확장함수를 제공하지 않았기 때문에 Integer.parseInt를 사용해 String으로 변환해야 했다. 사용법은 아래와 같다.
fun main() {
val intString: String = "12"
println(Integer.parseInt(intString))
}
사실 이 방법은 String.toInt()에서도 내부에서 사용하는 방법이다. Integer.parseInt를 찾기 어려워 변환에 어려움을 겪는 개발자가 많았기 때문에 간편화 하기 위해 확장함수로 만든 것으로 보인다.
@kotlin.internal.InlineOnly
public actual inline fun String.toInt(): Int = java.lang.Integer.parseInt(this)