655 Stimmen

Wie überprüfe ich, ob ein String in Swift einen anderen String enthält?

In Objective-C lautet der Code zum Überprüfen eines Teilstrings in einem NSString:

NSString *string = @"hello Swift";
NSRange textRange =[string rangeOfString:@"Swift"];
if(textRange.location != NSNotFound)
{
    NSLog(@"exists");
}

Aber wie mache ich das in Swift?

5voto

Marie Amida Punkte 556

In Swift 3

if((a.range(of: b!, options: String.CompareOptions.caseInsensitive, range: nil, locale: nil)) != nil){
    print("Erledigt")
}

4voto

Carlitos Punkte 193

Hier hast du es! Bereit für Xcode 8 und Swift 3.

import UIKit

let mString = "Dies ist ein String, der etwas zum Suchen enthält."
let stringToSearchUpperCase = "String"
let stringToSearchLowerCase = "string"

mString.contains(stringToSearchUpperCase) //true
mString.contains(stringToSearchLowerCase) //false
mString.lowercased().contains(stringToSearchUpperCase) //false
mString.lowercased().contains(stringToSearchLowerCase) //true

3voto

JAL Punkte 40532

Xcode 8/Swift 3 Version:

let string = "hello Swift"

if let range = string.range(of: "Swift") {
    print("existiert im Bereich \(range)")
} else {
    print("existiert nicht")
}

if let lowercaseRange = string.lowercased().range(of: "swift") {
    print("existiert im Bereich \(lowercaseRange)")
} else {
    print("existiert nicht")
}

Sie können auch contains verwenden:

string.contains("swift") // false
string.contains("Swift") // true

3voto

NonCreature0714 Punkte 5684

Swift 4 Möglichkeit, Teilstrings zu überprüfen, einschließlich des erforderlichen Foundation (oder UIKit) Framework-Imports:

import Foundation // oder UIKit

let str = "Oh Kanada!"

str.contains("Kan") // gibt true zurück

str.contains("kan") // gibt false zurück

str.lowercased().contains("kan") // Fall-unabhängig, gibt true zurück

Es sei denn, das Foundation (oder UIKit) Framework ist importiert, wird str.contains("Kan") einen Compilerfehler verursachen.


Diese Antwort ist eine Wiedergabe von manojlds Antwort, die vollkommen korrekt ist. Ich habe keine Ahnung, warum so viele Antworten so viel Mühe darauf verwenden, die Foundation-Methode String.contains(subString: String) neu zu erstellen.

3voto

100tomer Punkte 137

Mit der neuen Syntax in Swift 4 kannst du einfach

string.contains("Swift 4 ist am besten")

string ist deine Zeichenkettenvariable

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X