Questo è in realtà un caso che è perfettamente adatto per le espressioni regolari:
NSString *str = @"00000123";
NSString *cleaned = [str stringByReplacingOccurrencesOfString:@"^0+"
withString:@""
options:NSRegularExpressionSearch
range:NSMakeRange(0, str.length)];
sola riga di codice (in senso logico, interruzioni di riga aggiunte per chiarezza) e non vi sono limiti il numero di caratteri che gestisce.
Una breve spiegazione del modello di espressione regolare:
Il ^
significa che il modello dovrebbe essere ancorata all'inizio della stringa. Abbiamo bisogno di questo per assicurarci che non corrisponda a zero legittimi all'interno della sequenza di cifre.
La parte 0+
indica che deve corrispondere a uno o più zeri.
Insieme, corrisponde a una o più zeri all'inizio della stringa, quindi lo sostituisce con una stringa vuota, cioè elimina gli zeri iniziali.
Sei fantastico @adali :)) –
sei il benvenuto :) – adali
Salve @adali, ma quando la lunghezza della stringa è> 9, fornisce un valore diverso. Puoi controllarlo.Per ad es.NSString * str = @ "3103282369"; NSString * clean = [NSString stringWithFormat: @ "% d", [str intValue]]; NSLog (@ "Clean-% @", pulito); fornisce 2147483647 come output. –