2012-12-25 15 views
22

muszę usunąć pierwszy znak od mojego UITextfield Jeśli jest to 0.Usuń pierwszy znak z napisu jeśli 0

Niestety nie wiem jak wydobyć wartość pierwszego znaku lub wyodrębnić znaków z ciąg po pierwszym znaku.

Dzięki

+0

jestem niezbyt zrozumiałe z twoim pytaniem, czy mógłbyś ułatwić zrozumienie? – gamehelp16

+0

Cóż, wyodrębnij tekst, a następnie spójrz na pierwszą postać. https://developer.apple.com/library/ios/#documentation/UIKit/Reference/UITextField_Class/Reference/UITextField.html http://developer.apple.com/library/ios/#documentation/Cocoa/Reference/Foundation /Classes/NSString_Class/Reference/NSString.html –

Odpowiedz

73

Jednym z rozwiązań mogłoby być:

if ([string hasPrefix:@"0"] && [string length] > 1) { 
    string = [string substringFromIndex:1]; 
} 
6

Pewnie można chcieć czegoś takiego, używając hasPrefix:

if ([string hasPrefix:@"0"]) { 
    string = [string substringFromIndex:1]; 
} 

Można również użyć characterAtIndex: która zwraca unichar:

if ([string characterAtIndex:0] == '0') { 
    string = [string substringFromIndex:1]; 
} 

Należy zauważyć, że "a" to znak, "a" to ciąg C, a @ "a" to NSString. Wszystkie są różne.

+0

Bez problemu. Długość sznurka jest oczywiście miłym sprawdzianem. :) – johankj

2

Swift 3.0:

+0

Jeśli ten ciąg jest dynamiczny, może chcieć sprawdzić, czy liczba jest większa niż 1: if (string.characters.count> 1) {} –

+0

'jeśli jest to 0.' – Szu

+0

whoops, jesteś poprawny szu. –

2

Swift 3

hasPrefix ("0"), sprawdzić, czy pierwszy znak to 0 w txtField i usunąć go

if (self.txtField.text?.hasPrefix("0"))! {   
    self.txtField.text?.remove(at(self.txtField.text?.startIndex)!) 
} 
+0

Proszę wyjaśnij swój kod. – brimstone

Powiązane problemy