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 に答える