Tôi đã nhận được một NSString
từ máy chủ. Bây giờ tôi muốn chia nó thành chuỗi con mà tôi cần. Làm thế nào để tách chuỗi?
Ví dụ:
Subring1: đọc từ ký tự thứ hai đến ký tự thứ 5
substring2: đọc 10 ký tự từ ký tự thứ 6.
Tôi đã nhận được một NSString
từ máy chủ. Bây giờ tôi muốn chia nó thành chuỗi con mà tôi cần. Làm thế nào để tách chuỗi?
Ví dụ:
Subring1: đọc từ ký tự thứ hai đến ký tự thứ 5
substring2: đọc 10 ký tự từ ký tự thứ 6.
Câu trả lời:
Bạn cũng có thể chia một chuỗi theo một chuỗi con, bằng cách sử dụng phương thức componentsSeparatedByString của NString .
Ví dụ từ tài liệu:
NSString *list = @"Norman, Stanley, Fletcher";
NSArray *listItems = [list componentsSeparatedByString:@", "];
NSString có một số phương pháp cho việc này:
[myString substringToIndex:index];
[myString substringFromIndex:index];
[myString substringWithRange:range];
Kiểm tra tài liệu cho NSString để biết thêm thông tin.
Tôi đã viết một phương pháp nhỏ để chia các chuỗi thành một số phần cụ thể. Lưu ý rằng nó chỉ hỗ trợ các ký tự phân tách đơn. Nhưng tôi nghĩ rằng đó là một cách hiệu quả để tách một chuỗi NSString.
//split string into given number of parts
-(NSArray*)splitString:(NSString*)string withDelimiter:(NSString*)delimiter inParts:(int)parts{
NSMutableArray* array = [NSMutableArray array];
NSUInteger len = [string length];
unichar buffer[len+1];
//put separator in buffer
unichar separator[1];
[delimiter getCharacters:separator range:NSMakeRange(0, 1)];
[string getCharacters:buffer range:NSMakeRange(0, len)];
int startPosition = 0;
int length = 0;
for(int i = 0; i < len; i++) {
//if array is parts-1 and the character was found add it to array
if (buffer[i]==separator[0] && array.count < parts-1) {
if (length>0) {
[array addObject:[string substringWithRange:NSMakeRange(startPosition, length)]];
}
startPosition += length+1;
length = 0;
if (array.count >= parts-1) {
break;
}
}else{
length++;
}
}
//add the last part of the string to the array
[array addObject:[string substringFromIndex:startPosition]];
return array;
}