Kotlin - String을 Int로 변환

코틀린에서 String을 Int로 변환하는 방법을 소개합니다.

String.toInt()

String.toInt()는 문자열을 Int로 변환하여 리턴합니다.

fun main(args: Array<String>){

    val str: String = "1234"

    val num: Int = str.toInt()

    print("num : $num")
}

Output:

num : 1234

NumberFormatException

toInt()는 숫자가 아닌 문자열을 변환할 때 NumberFormatException이 발생시킵니다.

fun main(args: Array<String>){

    val str: String = "a1234"

    val num: Int = str.toInt()
}

Output:

Exception in thread "main" java.lang.NumberFormatException: For input string: "a1234"
	at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
	at java.base/java.lang.Integer.parseInt(Integer.java:652)
	at java.base/java.lang.Integer.parseInt(Integer.java:770)
	at StringToInt2Kt.main(StringToInt2.kt:5)

다음과 같이 예외처리가 필요합니다.

fun main(args: Array<String>){

    val str: String = "a1234"

    try {
        val num: Int = str.toInt()
        print("num : $num")
    } catch (e: NumberFormatException) {
        println("Not number: $str")
    }
}

Output:

Not number: a1234

String.toIntOrNull()

String.toIntOrNull()은 문자열을 Int로 변환하여 리턴합니다. 만약 문자열이 숫자가 아닐 때는 null을 리턴합니다.

toIntOrNull()를 사용하면 NumberFormatException에 대한 예외처리가 필요없습니다. 대신 Nullable한 객체에 Int를 할당해야 합니다.

fun main(args: Array<String>){

    val str: String = "a1234"

    val num: Int? = str.toIntOrNull()

    println("num: $num")
}

Output:

num: null
Loading script...
codechachaCopyright ©2019 codechacha