3

我有以下内容NSMutableString

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

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

4

4 回答 4

7
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)];
}
于 2012-04-13T23:10:46.723 回答
3

您可以尝试将此字符串除以分隔符并获取第一个对象

NSString *result = [[MyString componentsSeparatedByString:@"*"]objectAtIndex:0];

调用后 componentsSeparatedByString:@"*"你会得到一个字符串数组,用*分隔,第一个对象就是你需要的。

于 2012-04-13T23:12:39.500 回答
2

这是另一种策略,使用非常灵活的NSScanner.

NSString* beginning;
NSScanner* scanner = [NSScanner scannerWithString:@"1*2*3*4*5"];
[scanner scanUpToString:@"*" intoString:&beginning];
于 2012-04-13T23:13:56.183 回答
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];
于 2012-04-13T23:12:11.373 回答