1. ホーム
  2. objective-c

NSStringを同じセパレータで複数回分割する

2023-07-30 09:19:23

質問

現在、このような文字列を受信しています。

@"Sam|26,Hannah|22,Adam|30,Carlie|32,Jan|54"

と、こんな感じで分割しています。

testArray = [[NSArray alloc] init];
NSString *testString = [[NSString alloc] initWithFormat:@"Sam|26,Hannah|22,Adam|30,Carlie|32,Jan|54,Steve|56,Matty|24,Bill|30,Rob|30,Jason|33,Mark|22,Stuart|54,Kevin|30"];
testArray = [testString componentsSeparatedByString:@","];

dict = [NSMutableDictionary dictionary];
for (NSString *s in testArray) {

    testArray2 = [s componentsSeparatedByString:@"|"];
    [dict setObject:[testArray2 objectAtIndex:1] forKey:[testArray2 objectAtIndex:0]];
}

これから、このような文字列を受け取ることになります。

@"Sam|26|Developer,Hannah|22|Team Leader,Adam|30|Director,Carlie|32|PA,Jan|54|Cleaner"

上記と同じ方法で、"|"のセパレータを使って文字列を複数回区切ることは(どのように)可能でしょうか?

どのように解決するのですか?

次の行は...

testArray2 = [s componentsSeparatedByString:@"|"];

を実行すると、配列は2つの項目から3つの項目を含むようになります...再度分割する必要はありません!