programing

Swift에서 문자열의 시작(접두사) 또는 끝(첨자)을 확인하는 방법

testmans 2023. 11. 1. 22:12
반응형

Swift에서 문자열의 시작(접두사) 또는 끝(첨자)을 확인하는 방법

스위프트 문자열이 어떤 값으로 시작하는지 종료하는지 테스트하려고 합니다.이러한 메소드는 존재하지 않습니다.

var str = "Hello, playground"
str.startsWith("Hello") // error
str.endsWith("ground") // error

접두사와 접미사 문자열도 받고 싶습니다.여기서 답하는 부분 끈을 찾을 수 있었습니다만, 범위는 스위프트에게 매우 고통스럽습니다.

더 쉬운 방법이 없을까요?

(설명서를 읽다가 우연히 답을 발견했고, 검색어에 대한 SO답이 나오지 않아 여기에 Q&A를 추가합니다.)

Swift 4용으로 업데이트됨

문자열의 시작과 끝을 확인하는 중

사용할 수 있습니다.hasPrefix(_:)그리고.hasSuffix(_:)다른 문자열과의 동일성을 테스트하는 메소드입니다.

let str = "Hello, playground"

if str.hasPrefix("Hello") { // true
    print("Prefix exists")
}

if str.hasSuffix("ground") { // true
    print("Suffix exists")
}

실제 접두사 및 접미사 서브스트링 가져오기

실제 접두사 또는 접미사 부분 문자열을 얻으려면 다음 방법 중 하나를 사용할 수 있습니다.간단함을 위해 첫 번째 방법을 추천합니다.모든 메소드 사용str~하듯이

let str = "Hello, playground"

방법 1: (권장)prefix(Int)그리고.suffix(Int)

let prefix = String(str.prefix(5)) // Hello
let suffix = String(str.suffix(6)) // ground

제 생각에는 이것이 더 나은 방법입니다.아래 방법 2 및 방법 3과는 달리 인덱스가 경계를 벗어나도 이 방법은 충돌하지 않습니다.문자열의 모든 문자만 반환됩니다.

let prefix = String(str.prefix(225)) // Hello, playground
let suffix = String(str.suffix(623)) // Hello, playground

물론 크래시는 코드에 문제가 있다는 것을 알려주기 때문에 가끔 좋습니다.따라서 아래의 두 번째 방법도 고려해 보십시오.인덱스가 범위를 벗어나면 오류가 발생합니다.

방법 2:.prefix(upto:)그리고.suffix(from:)

스위프트 스트링 인덱스는 특수 문자(예: 이모지)를 고려해야 하기 때문에 까다롭습니다.그러나 일단 색인을 얻으면 접두사나 접미사를 쉽게 얻을 수 있습니다. (다음 항목에서 다른 답변 참조)String.Index.)

let prefixIndex = str.index(str.startIndex, offsetBy: 5)
let prefix = String(str.prefix(upTo: prefixIndex)) // Hello

let suffixIndex = str.index(str.endIndex, offsetBy: -6)
let suffix = String(str.suffix(from: suffixIndex)) // ground

만약 당신이 경계를 벗어나는 것을 경계하고 싶다면, 당신은 다음을 사용하여 인덱스를 만들 수 있습니다.limitedBy(다시, 이 답변 참조).

방법 3: 구독자

String은 집합이므로 첨자를 사용하여 접두사와 접미사를 가져올 수 있습니다.

let prefixIndex = str.index(str.startIndex, offsetBy: 5)
let prefix = String(str[..<prefixIndex]) // Hello

let suffixIndex = str.index(str.endIndex, offsetBy: -6)
let suffix = String(str[suffixIndex...]) // ground

더보기

접두사 및 접미사 동일성

문자열에 특정 문자열 접두사나 접미사가 있는지 확인하려면 문자열의 hasPrefix(:) 메서드와 suffix(:) 메서드를 호출합니다. 두 메서드 모두 String 형식의 단일 인수를 사용하고 Boolean 값을 반환합니다.

애플닥

언급URL : https://stackoverflow.com/questions/32967445/how-to-check-what-a-string-starts-with-prefix-or-ends-with-suffix-in-swift

반응형