从NSString中的某个字符获取子字符串

can*_*boy 31 iphone objective-c nsstring

如果我最初有一个NSString:

"ABCDE*FGHI"
Run Code Online (Sandbox Code Playgroud)

如何让它变成

"FGHI"
Run Code Online (Sandbox Code Playgroud)

换句话说,保留了从星号开始的所有内容.

同样,我怎么把它变成:

"ABCDE"
Run Code Online (Sandbox Code Playgroud)

(保留星号的一切)

谢谢

Sam*_*ker 65

NSString *myString = @"ABCDE*FGHI"; 
NSArray *myArray = [myString componentsSeparatedByString:@"*"];
Run Code Online (Sandbox Code Playgroud)
  • myArray的键0将包含@"ABCDE"
  • 键1将包含@"FGHI"

如果您想要多个字符作为分隔符,请
使用componentsSeparatedByCharactersInSet:

NSString *myString = @"ABCDE*FGHI-JKL"; 
NSArray *myArray = [myString componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"*-"]];
Run Code Online (Sandbox Code Playgroud)
  • myArray的键0将包含@"ABCDE"
  • 键1将包含@"FGHI"
  • 键2将包含@"JKL"


luv*_*ere 22

NSString *myString = @"ABCDE*FGHI";
NSString *subString = [myString substringWithRange: NSMakeRange(0, [myString rangeOfString: @"*"].location)];
Run Code Online (Sandbox Code Playgroud)

  • 这好于接受的答案,因为它的行为类似于输入“ AB \ * CD \ * EF”所要求的OP (2认同)

Gar*_*rgo 9

NSString *myString = @"ABCDE*FGHI";
NSArray *myArray = [myString componentsSeparatedByString:@"*"];
Run Code Online (Sandbox Code Playgroud)