본문 바로가기

앱 개발/Algorithm

substring, isDigit (문자열을 정수로 바꾸기)

< substring >

 문자열에서 일부분을 추출하는 데 사용된다. 주어진 인덱스나 범위에 해당하는 부분 문자열을 반환한다. 인덱스나 범위를 사용하여 부분 문자열을 추출하는 다양한 오버로드를 제공하므로 문자열 작업을 효과적으로 수행할 수 있다.

val originalString = "Hello, World!"

// 인덱스를 사용
val subString1 = originalString.substring(7)
println(subString1) // "World!"

// 범위를 사용
val subString2 = originalString.substring(0..4)
println(subString2) // "Hello"

// 시작 인덱스와 끝 인덱스를 사용
val subString3 = originalString.substring(7, 12)
println(subString3) // "World"


< isDigit >

 문자가 10진수 숫자인지 여부를 확인한다. 주어진 문자가 0부터 9까지의 숫자 중 하나인지 여부를 불리언 값으로 반환한다. 주로 문자열에서 숫자를 추출하거나 입력값의 유효성을 검사하는 작업 등에서 활용된다.

println('5'.isDigit()) // true
println('A'.isDigit()) // false

----------------------------------------------------------------------------------------------------------------------------

< 문제 18번 >

 

< solution >


class Solution {
    fun solution(s: String): Int {
        require(s.length in 1..5)
        require(!s.startsWith("0"))

        // 문자열 s의 첫번째 인덱스가 + 또는 -이면 두번째 인덱스부터 추출
        val str = if (s[0] == '+' || s[0] == '-') s.substring(1) else s

        // 문자열 str이 모두 숫자로 되어있는지 확인
        if (str.all { it.isDigit() }) {
            return if (s[0] == '-') -str.toInt() else str.toInt()
        } else {
            throw IllegalArgumentException()
        }
    }
}

728x90