[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)
}