我有以下NSMutableString
:
@"1*2*3*4*5"
我想找到第一个*并删除它之后的所有内容,所以我的string = @"1";
我该怎么做?
答案 0 :(得分:6)
NSMutableString *string = [NSMutableString stringWithString:@"1*2*3*4*5"];
NSRange range = [string rangeOfString:@"*"];
if (range.location != NSNotFound)
{
[string deleteCharactersInRange:NSMakeRange(range.location, [string length] - range.location)];
}
答案 1 :(得分:3)
您可以尝试将此字符串除以分隔符并获取第一个对象
NSString *result = [[MyString componentsSeparatedByString:@"*"]objectAtIndex:0];
调用componentsSeparatedByString:@"*"
后,你将得到字符串数组,用*分隔,第一个对象就是你所需的。
答案 2 :(得分:2)
这是另一种策略,使用非常灵活的NSScanner
。
NSString* beginning;
NSScanner* scanner = [NSScanner scannerWithString:@"1*2*3*4*5"];
[scanner scanUpToString:@"*" intoString:&beginning];
答案 3 :(得分:0)
您可以使用-rangeOfString:
查找第一个星号的索引,并使用-substringToIndex:
从原始输入中提取子字符串。这样的事也许......
NSMutableString *input = @"1*2*3*4*5";
// Finds the range of the first instance. See NSString docs for more options.
NSRange firstAsteriskRange = [input rangeOfString:@"*"];
NSString *trimmedString = [input substringToIndex:firstAsteriskRange.location + 1];