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?

23voto

Saranjith Punkte 10319

In Swift 4.2

Verwenden Sie

func contains(_ str: String) -> Bool

Beispiel

let string = "hello Swift"
let containsSwift = string.contains("Swift")
print(containsSwift) // gibt true aus

16voto

Ashok R Punkte 18270

> IN SWIFT 3.0

let str = "Hallo Swift"
if str.lowercased().contains("Swift".lowercased()) {
    print("String enthält einen anderen String")
} else {
    print("Nicht vorhanden")
}

Output

String enthält einen anderen String

15voto

Anmol Kukreja Punkte 110

Sie können dies ganz einfach in Swift mit dem folgenden Code tun:

let string = "hello Swift";
let subString = (string as NSString).containsString("Swift")
if(subString){println("Exist")}

10voto

user1021430 Punkte 2821

Von allen Antworten hier denke ich, dass sie entweder nicht funktionieren oder ein wenig "gehackt" sind (Rückgabe zu NSString). Es ist sehr wahrscheinlich, dass sich die richtige Antwort mit den verschiedenen Beta-Versionen geändert hat.

Hier ist, was ich benutze:

let string: String = "Hallo Swift"
if string.rangeOfString("Swift") != nil
{
    println("existiert")
}

Das "!= nil" wurde mit Beta 5 erforderlich.

10voto

markhunte Punkte 6676

Nur ein Nachtrag zu den Antworten hier.

Sie können auch einen lokalen Fall-unempfindlichen Test durchführen mit:

 - (BOOL)localizedCaseInsensitiveContainsString:(NSString *)aString

Beispiel:

    import Foundation

    var string: NSString  =  "hello Swift"
   if string.localizedCaseInsensitiveContainsString("Hello") {
    println("TRUE")
}

UPDATE

Dies ist Teil des Foundation-Frameworks für iOS & Mac OS X 10.10.x und war zum Zeitpunkt meines ursprünglichen Postings Teil von 10.10.

Dokument erstellt: 2014-06-05 12:26:27 -0700 OS X Versionshinweise Copyright © 2014 Apple Inc. Alle Rechte vorbehalten.

OS X 10.10 Versionshinweise Cocoa Foundation Framework

NSString hat jetzt die folgenden beiden Hilfsmethoden:

- (BOOL)containsString:(NSString *)str;

- (BOOL)localizedCaseInsensitiveContainsString:(NSString *)str;

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