Kotlin - String을 Long으로 변환

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

String.toLong()

String.toLong()는 문자열을 Long으로 변환하여 리턴합니다.

fun main(args: Array<String>){

    val str: String = "1234"

    val num: Long = str.toLong()

    print("num : $num")
}

Output:

num : 1234

NumberFormatException

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

fun main(args: Array<String>){

    val str: String = "a1234"

    val num: Long = str.toLong()
}

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.Long.parseLong(Long.java:692)
	at java.base/java.lang.Long.parseLong(Long.java:817)
	at StringToLongKt.main(StringToLong.kt:5)

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

fun main(args: Array<String>){

    val str: String = "a1234"

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

Output:

Not number: a1234

String.toLongOrNull()

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

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

fun main(args: Array<String>){

    val str: String = "a1234"

    val num: Long? = str.toLongOrNull()

    print("num : $num")
}

Output:

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