私は次のものを持っていますNSMutableString
:
@"1*2*3*4*5"
最初の * を見つけて、それ以降のすべてを削除したいので、string = @"1";
どうすればよいですか?
私は次のものを持っていますNSMutableString
:
@"1*2*3*4*5"
最初の * を見つけて、それ以降のすべてを削除したいので、string = @"1";
どうすればよいですか?
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)];
}
この文字列を区切り文字で分割して、最初のオブジェクトを取得することができます
NSString *result = [[MyString componentsSeparatedByString:@"*"]objectAtIndex:0];
呼び出した後 componentsSeparatedByString:@"*"
、*で区切られた文字列の配列を取得し、最初のオブジェクトが必要なものになります。
非常に柔軟なを使用した、さらに別の戦略がありNSScanner
ます。
NSString* beginning;
NSScanner* scanner = [NSScanner scannerWithString:@"1*2*3*4*5"];
[scanner scanUpToString:@"*" intoString:&beginning];
を使用-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];