web-dev-qa-db-ja.com

NSStringの特定の文字から部分文字列を取得する

最初にあるNSStringがある場合:

"ABCDE*FGHI"

それをどうやって変えるのですか

"FGHI"

つまり、アスタリスク以降のすべてが保持されます。

同様に、私はそれをどのように変えますか?

"ABCDE"

(アスタリスクまでのすべてが保持されます)

ありがとう

32
cannyboy
NSString *myString = @"ABCDE*FGHI"; 
NSArray *myArray = [myString componentsSeparatedByString:@"*"];
  • myArrayのキー0には@ "ABCDE"が含まれます
  • キー1には@ "FGHI"が含まれます

複数の文字を区切り文字にしたい場合は、
使用componentsSeparatedByCharactersInSet

NSString *myString = @"ABCDE*FGHI-JKL"; 
NSArray *myArray = [myString componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"*-"]];
  • myArrayのキー0には@ "ABCDE"が含まれます
  • キー1には@ "FGHI"が含まれます
  • キー2には@ "JKL"が含まれます
64
NSString *myString = @"ABCDE*FGHI";
NSString *subString = [myString substringWithRange: NSMakeRange(0, [myString rangeOfString: @"*"].location)];
22
luvieere
NSString *myString = @"ABCDE*FGHI";
NSArray *myArray = [myString componentsSeparatedByString:@"*"];
9
Gargo
NSString *yourString = @"ABCDE*FGHI";

NSMutableArray * array = [[NSMutableArray alloc] initWithArray:[yourString componentsSeparatedByString:@"*"]];

for(int i =0 ; i < array.count ; i++){
    NSLog(@"- %d : %@ \n",i,[array objectAtIndex:i]);
}
0