Tôi có một chuỗi như thế này: @"10/04/2011"
và tôi muốn chỉ lưu "10" trong một chuỗi khác. Làm thế nào tôi có thể làm điều đó?
Tôi có một chuỗi như thế này: @"10/04/2011"
và tôi muốn chỉ lưu "10" trong một chuỗi khác. Làm thế nào tôi có thể làm điều đó?
Câu trả lời:
NSArray* foo = [@"10/04/2011" componentsSeparatedByString: @"/"];
NSString* firstBit = [foo objectAtIndex: 0];
Cập nhật ngày 7/3/2018:
Bây giờ câu hỏi đã có được thẻ Swift, tôi nên thêm cách Swift để làm điều này. Nó khá đơn giản:
let substrings = "10/04/2011".split(separator: "/")
let firstBit = substrings[0]
Mặc dù lưu ý rằng nó cung cấp cho bạn một mảng Substring
. Nếu bạn cần chuyển đổi các chuỗi này trở lại chuỗi thông thường, hãy sử dụngmap
let strings = "10/04/2011".split(separator: "/").map{ String($0) }
let firstBit = strings[0]
hoặc là
let firstBit = String(substrings[0])
[foo firstObject]
có thể tốt hơn trong trường hợp chung vì nó cũng sẽ xử lý đúng mảng trống.
Một trong hai điều này:
NSString *subString = [dateString subStringWithRange:NSMakeRange(0,2)];
NSString *subString = [[dateString componentsSeparatedByString:@"/"] objectAtIndex:0];
Mặc dù hãy nhớ rằng đôi khi một chuỗi ngày không được định dạng đúng và một ngày (hoặc một tháng cho vấn đề đó) được hiển thị là 8, thay vì 08, vì vậy, chuỗi đầu tiên có thể là tồi tệ nhất trong 2 giải pháp.
Cái sau nên được đặt vào một mảng riêng để bạn thực sự có thể kiểm tra độ dài của thứ được trả về, do đó bạn không nhận được bất kỳ ngoại lệ nào được ném trong trường hợp chuỗi ngày bị hỏng hoặc không hợp lệ từ bất kỳ nguồn nào bạn có.
Nó hoạt động tốt
NSString *dateString = @"10/10/2010";//Date
NSArray* dateArray = [dateString componentsSeparatedByString: @"/"];
NSString* dayString = [dateArray objectAtIndex: 0];
Sử dụng [myString componentsSeparatedByString:@"/"]
Tôi đã định dạng giải pháp tốt đẹp do JeremyP cung cấp ở trên thành một chức năng tái sử dụng chung chung hơn dưới đây:
///Return an ARRAY containing the exploded chunk of strings
+(NSArray*)explodeString:(NSString*)stringToBeExploded WithDelimiter:(NSString*)delimiter
{
return [stringToBeExploded componentsSeparatedByString: delimiter];
}