Objective-C Split ()?


110

มีวิธีใดในการแยกสตริงในวัตถุประสงค์ c เป็นอาร์เรย์หรือไม่? ฉันหมายถึงแบบนี้ - สตริงอินพุตใช่: 0: 42: ค่าในอาร์เรย์ของ (ใช่ 0,42 ค่า)?

คำตอบ:


199
NSArray *arrayOfComponents = [yourString componentsSeparatedByString:@":"];

ที่ของคุณมีสตริง @"one:two:three"

และ arrayOfComponents จะมี @[@"one", @"two", @"three"]

และคุณสามารถเข้าถึงได้ด้วย NSString *comp1 = arrayOfComponents[0];

( https://developer.apple.com/documentation/foundation/nsstring/1413214-componentsseparatedbystring )


29
[NSArray componentsJoinedByString:]หมายเหตุผกผันคือ
devios1

ฉันมีปัญหาถ้าฉันทำ @ "Hello world" มันจะส่งคืนอาร์เรย์ของ 3 ออบเจ็กต์ซึ่งอันสุดท้ายมี @ "" ฉันสามารถวนซ้ำอาร์เรย์และลบออกได้ แต่มีวิธีที่ดีกว่านี้หรือไม่
Au Ris

1
@AuRis ลองตัดช่องว่างจากสตริงก่อน: [string stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceCharacterSet]];
theDuncs



4

ใช้สิ่งนี้: [[string componentsSeparatedByString: @ ","] [0];


6
ฉันยังสงสัยว่าทำไมผู้คนถึงตอบคำถามที่มีอายุและมีคำตอบ ... ไม่ต้องพูดถึงคุณเพียงแค่เลือกองค์ประกอบแรกที่ไม่สมเหตุสมผล
Christian Stewart

0

หากคุณต้องการเข้าถึงคำแรก:

[[string componentsSeparatedByString:@" "] objectAtIndex:0];
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.