Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/111.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 字符串操作:更高级的子字符串_Ios_Objective C_Nsstring_Substring - Fatal编程技术网

Ios 字符串操作:更高级的子字符串

Ios 字符串操作:更高级的子字符串,ios,objective-c,nsstring,substring,Ios,Objective C,Nsstring,Substring,如何从下面的长字符串中提取“19”? 我想这样做,但我想知道,有没有比这更好/更快的方法 NSString *myString = @"13.5 Points-(19) 38 Points-(50) 50 Points-(215) 4.3 Points-105.8 Points-21"; NSArray *myArray = [myString componentsSeparatedByString:@"-"]; NSString *splitString = [myArray

如何从下面的长字符串中提取“19”? 我想这样做,但我想知道,有没有比这更好/更快的方法

NSString *myString = @"13.5 Points-(19) 38 Points-(50) 50 Points-(215) 4.3 Points-105.8 Points-21";
NSArray  *myArray  = [myString componentsSeparatedByString:@"-"];

NSString *splitString  = [myArray        objectAtIndex:1             ];
NSRange  range         = [splitString    rangeOfString:@")"          ];
NSString *newString    = [splitString substringToIndex:range.location];

NSString *newString2 = [newString stringByReplacingOccurrencesOfString:@"(" withString:@""];

NSLog(@"newString2: %@", newString2);
试试这个

NSString *myString = @"13.5 Points-(19) 38 Points-(50) 50 Points-(215) 4.3 Points-105.8 Points-21";
NSArray *strArr = [myString componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString: @"()"]];

NSLog(@"myString..%@",[strArr objectAtIndex:1]);// myString..19 
试试这个

NSString *myString = @"13.5 Points-(19) 38 Points-(50) 50 Points-(215) 4.3 Points-105.8 Points-21";
NSArray *strArr = [myString componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString: @"()"]];

NSLog(@"myString..%@",[strArr objectAtIndex:1]);// myString..19 

当您只需要原始字符串的一小段时,使用由字符串分隔的组件是非常低效的。您不需要解析整个字符串

解决方案实际上取决于字符串的格式。如果希望子字符串始终位于第一对括号中,则使用
rangeOfString
获取第一个
和第一个
会更有效。然后你把这两块之间的那块提取出来

示例(没有任何正确的错误检查):


当您只需要原始字符串的一小段时,使用由字符串分隔的组件是非常低效的。您不需要解析整个字符串

解决方案实际上取决于字符串的格式。如果希望子字符串始终位于第一对括号中,则使用
rangeOfString
获取第一个
和第一个
会更有效。然后你把这两块之间的那块提取出来

示例(没有任何正确的错误检查):