如何删除NSMutableString的结尾?

时间:2012-04-13 23:03:20

标签: iphone objective-c ios xcode cocoa-touch

我有以下NSMutableString

@"1*2*3*4*5"

我想找到第一个*并删除它之后的所有内容,所以我的string = @"1";我该怎么做?

4 个答案:

答案 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];