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
'programing' 카테고리의 다른 글
접두사가 없는 targetNamespace 및 xmlns, 차이점은 무엇입니까? (0) | 2023.11.01 |
---|---|
JNDI 이름에 대해 바인딩할 항목 없음 (0) | 2023.11.01 |
PHP json_encode에 여러 배열을 전달하고 jQuery로 파싱하는 방법이 있습니까? (0) | 2023.11.01 |
#1227 - 접근이 거부되었습니다. 이 작업을 위해 SUPER 권한이 필요합니다. (0) | 2023.11.01 |
Base64 String을 파일 입력 양식과 같은 자바스크립트 파일 개체로 변환하는 방법은 무엇입니까? (0) | 2023.11.01 |