2012-12-25 73 views
22

tôi cần phải loại bỏ các ký tự đầu tiên từ UITextfield tôi nếu đó là một 0.Remove ký tự đầu tiên từ chuỗi nếu 0

Đáng tiếc là tôi không biết làm thế nào để trích xuất các giá trị của ký tự đầu tiên hoặc trích xuất các ký tự của chuỗi sau ký tự đầu tiên.

Cảm ơn

+0

tôi không quá hiểu với câu hỏi của bạn, bạn sẽ làm cho nó dễ hiểu hơn? – gamehelp16

+0

Vâng, trích xuất văn bản, sau đó nhìn vào ký tự đầu tiên. 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 –

Trả lời

73

Một giải pháp có thể là:

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

Bạn có lẽ sẽ muốn một cái gì đó như thế này, sử dụng hasPrefix:

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

Bạn cũng có thể sử dụng characterAtIndex: mà trả về một unichar:

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

Lưu ý rằng, 'a' là ký tự, "a" là chuỗi C và @ "a" là NSString. Tất cả đều là các loại khác nhau.

+0

Không sao cả. Chiều dài chuỗi là tất nhiên một kiểm tra tốt đẹp. :) – johankj

2

Swift 3.0:

+0

Nếu chuỗi này là động, có thể muốn kiểm tra xem số lượng lớn hơn 1: if (string.characters.count> 1) {} –

+0

'nếu đó là 0.' – Szu

+0

, bạn đúng là szu. –

2

Swift 3

hasPrefix ("0") kiểm tra xem ký tự đầu tiên là 0 trong txtField và loại bỏ nó

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

Vui lòng giải thích mã của bạn. – brimstone

Các vấn đề liên quan