Wie bekomme ich die ersten drei Zeichen eines NSString?


Antworten:


263
 mystr=[mystr substringToIndex:3];

Stellen Sie sicher, dass Ihre Zeichenfolge mindestens 3 Kanal hat. Andernfalls stürzt die App ab.

Hier sind einige andere Links, um die NSsting-Operationen zu überprüfen ...

Link1

Link2

Apple Link


21
Hinweis: Fehler "Bereich oder Index außerhalb der Grenzen" möglich, wenn Sie die Länge nicht überprüfen, um sicherzustellen, dass sie 3 oder mehr Zeichen lang ist
Ryan Bavetta

Ich bin sehr neu und habe nach dieser Frage gesucht, um meine eigene zu beantworten. Wird diese Antwort nicht die ersten drei Zeichen entfernen? Ich verwende dieselbe Syntax, um die Anzahl der von Ihnen festgelegten Zeichen zu ENTFERNEN. Ich liege wahrscheinlich falsch, dachte aber, ich sollte zumindest fragen.

@RyanBavetta Was ist, wenn die Zeichenfolge, mit der Sie dies tun, beispielsweise eine Datumszeichenfolge ist, die Ihr Code zuvor erstellt hat, und Sie genau wissen, wie viele Zeichen sie enthält? Dann brauchen Sie sich sicherlich nicht mit einer if-Anweisung zu beschäftigen, um zu überprüfen, wie lange es dauert, oder?
Supertecnoboff

1
@GameLoading Ich habe Ihrer Antwort Code hinzugefügt, damit sie für Anfänger nicht abstürzt. Hoffe es macht dir nichts aus :)
iYoung

Verwenden Sie einfach mystr = [mystr substringToIndex: MIN (mystr.length, 3)], um Abstürze zu vermeiden :-)
LaborEtArs

62

Zunächst müssen Sie sicherstellen, dass die Zeichenfolge mindestens 3 Zeichen enthält:

NSString *fullString = /* obtain from somewhere */;
NSString *prefix = nil;

if ([fullString length] >= 3)
    prefix = [fullString substringToIndex:3];
else
    prefix = fullString;

substringToIndex: löst eine Ausnahme aus, wenn der von Ihnen angegebene Index das Ende der Zeichenfolge überschreitet.


5
Oder wickeln Sie einen @ try / @ catch-Block ein. Dies ist jedoch eine bessere Antwort als die andere.
Alan Zeino

2

Der richtige Weg ist:

text = [text substringToIndex:NSMaxRange([text rangeOfComposedCharacterSequenceAtIndex:2])];

substringToIndex von NSString indiziert nach Codeeinheiten, Emoji benötigt zwei Codeeinheiten.

Überprüfen Sie den Index selbst.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.