[ios] Swift 언어에서 대소 문자를 무시하고 두 문자열을 비교하는 방법은 무엇입니까?
신속한 무시 케이스에서 두 문자열을 어떻게 비교할 수 있습니까? 예 :
var a = "Cash"
var b = "cash"
var a와 var b를 비교하면 true를 반환하는 메서드가 있습니까?
답변
이 시도:
var a = "Cash"
var b = "cash"
let result: NSComparisonResult = a.compare(b, options: NSStringCompareOptions.CaseInsensitiveSearch, range: nil, locale: nil)
// You can also ignore last two parameters(thanks 0x7fffffff)
//let result: NSComparisonResult = a.compare(b, options: NSStringCompareOptions.CaseInsensitiveSearch)
결과는 NSComparisonResult 열거 형 유형입니다.
enum NSComparisonResult : Int {
case OrderedAscending
case OrderedSame
case OrderedDescending
}
따라서 if 문을 사용할 수 있습니다.
if result == .OrderedSame {
println("equal")
} else {
println("not equal")
}
답변
이 시도 :
이전 Swift의 경우 :
var a : String = "Cash"
var b : String = "cash"
if(a.caseInsensitiveCompare(b) == NSComparisonResult.OrderedSame){
println("voila")
}
Swift 3+
var a : String = "Cash"
var b : String = "cash"
if(a.caseInsensitiveCompare(b) == .orderedSame){
print("voila")
}
답변
사용 caseInsensitiveCompare
방법 :
let a = "Cash"
let b = "cash"
let c = a.caseInsensitiveCompare(b) == .orderedSame
print(c) // "true"
ComparisonResult 는 사전 식 순서로 다른 단어보다 먼저 오는 단어를 알려줍니다 (즉, 사전의 앞쪽에 더 가까운 단어). .orderedSame
문자열이 사전의 동일한 위치에 있음을 의미합니다.
답변
if a.lowercaseString == b.lowercaseString {
//Strings match
}
답변
올바른 방법 :
let a: String = "Cash"
let b: String = "cash"
if a.caseInsensitiveCompare(b) == .orderedSame {
//Strings match
}
참고 : ComparisonResult.orderedSame은 약어로 .orderSame으로 작성할 수도 있습니다.
다른 방법들:
ㅏ.
if a.lowercased() == b.lowercased() {
//Strings match
}
비.
if a.uppercased() == b.uppercased() {
//Strings match
}
씨.
if a.capitalized() == b.capitalized() {
//Strings match
}
답변
직접 굴릴 수 있습니다.
func equalIgnoringCase(a:String, b:String) -> Bool {
return a.lowercaseString == b.lowercaseString
}
답변
localizedCaseInsensitiveContains : 대소 문자를 구분하지 않고 로케일을 인식하는 검색을 수행하여 수신자가 주어진 문자열을 포함하는지 여부를 리턴합니다.
if a.localizedCaseInsensitiveContains(b) {
//returns true if a contains b (case insensitive)
}
편집 :
caseInsensitiveCompare : NSCaseInsensitiveSearch를 유일한 옵션으로하여 compare (_ : options :)를 호출 한 결과를 반환합니다.
if a.caseInsensitiveCompare(b) == .orderedSame {
//returns true if a equals b (case insensitive)
}