ฉันมีสตริงเช่นนี้@"10/04/2011"
และฉันต้องการบันทึกเพียง "10" ในสายอื่น ฉันจะทำสิ่งนั้นได้อย่างไร
ฉันมีสตริงเช่นนี้@"10/04/2011"
และฉันต้องการบันทึกเพียง "10" ในสายอื่น ฉันจะทำสิ่งนั้นได้อย่างไร
คำตอบ:
NSArray* foo = [@"10/04/2011" componentsSeparatedByString: @"/"];
NSString* firstBit = [foo objectAtIndex: 0];
อัปเดต 7/3/2561:
ตอนนี้คำถามที่ได้รับแท็ก Swift ฉันควรเพิ่มวิธีการทำอย่างนี้ Swift มันง่ายมาก:
let substrings = "10/04/2011".split(separator: "/")
let firstBit = substrings[0]
Substring
แม้ว่าจะทราบว่ามันจะช่วยให้คุณอาเรย์ของ หากคุณต้องการแปลงกลับเป็นสตริงทั่วไปให้ใช้map
let strings = "10/04/2011".split(separator: "/").map{ String($0) }
let firstBit = strings[0]
หรือ
let firstBit = String(substrings[0])
[foo firstObject]
อาจจะดีกว่าในกรณีทั่วไปเพราะมันจะจัดการอาเรย์ที่ว่างเปล่าได้อย่างเหมาะสมเช่นกัน
ทั้งสองอย่างนี้:
NSString *subString = [dateString subStringWithRange:NSMakeRange(0,2)];
NSString *subString = [[dateString componentsSeparatedByString:@"/"] objectAtIndex:0];
แม้ว่าโปรดจำไว้ว่าบางครั้งสตริงวันที่ไม่ได้จัดรูปแบบอย่างถูกต้องและวัน (หรือเดือนสำหรับเรื่องนั้น) แสดงเป็น 8 แทนที่จะเป็น 08 ดังนั้นคนแรกอาจเป็นโซลูชันที่แย่ที่สุดของทั้งสอง
หลังควรใส่ไว้ในอาร์เรย์ที่แยกต่างหากเพื่อให้คุณสามารถตรวจสอบความยาวของสิ่งที่ส่งคืนได้ดังนั้นคุณจะไม่ได้รับข้อยกเว้นใด ๆ ในกรณีของสตริงวันที่ที่เสียหายหรือไม่ถูกต้องจากแหล่งใด ๆ ที่คุณมี
มันทำงานได้ดี
NSString *dateString = @"10/10/2010";//Date
NSArray* dateArray = [dateString componentsSeparatedByString: @"/"];
NSString* dayString = [dateArray objectAtIndex: 0];
Objective-C:
NSString *day = [@"10/04/2011" componentsSeparatedByString:@"/"][0];
สวิฟท์:
var day: String = "10/04/2011".componentsSeparatedByString("/")[0]
ใช้ [myString componentsSeparatedByString:@"/"]
ฉันได้จัดรูปแบบวิธีแก้ปัญหาที่ดีโดย JeremyP ข้างต้นเป็นฟังก์ชั่นที่ใช้ซ้ำได้ทั่วไปด้านล่าง:
///Return an ARRAY containing the exploded chunk of strings
+(NSArray*)explodeString:(NSString*)stringToBeExploded WithDelimiter:(NSString*)delimiter
{
return [stringToBeExploded componentsSeparatedByString: delimiter];
}
รุ่น Swift 3.0
let arr = yourString.components(separatedBy: "/")
let month = arr[0]