私は NSString *text = @"randomtext12345" を持っています
テキスト文字列は常に 'string' (不明な長さ) で始まり、'number' (整数型) が続きます。
テキスト間に「区切り」がありません。文字列と整数を検出するにはどうすればよいですか? なるテキストを抽出/分離/分離するために
NSString *key = @"randomtext";
NSInteger value = 12345;
私は NSString *text = @"randomtext12345" を持っています
テキスト文字列は常に 'string' (不明な長さ) で始まり、'number' (整数型) が続きます。
テキスト間に「区切り」がありません。文字列と整数を検出するにはどうすればよいですか? なるテキストを抽出/分離/分離するために
NSString *key = @"randomtext";
NSInteger value = 12345;
これは、すべての数値が最後にグループ化されていることを前提としています (つまり、「ランダムテキスト」部分に数字がありません)。また、入力文字列 ( text
) が正しい形式であることを確認するためのエラー チェックも含めていません。(つまり、数字部分が続くアルファ部分がなければなりません):
NSString *text = @"randomtext12345";
NSRange beginningOfNumber = [text rangeOfCharacterFromSet:[NSCharacterSet decimalDigitCharacterSet]];
if (beginningOfNumber.location == NSNotFound)
{
return;
}
NSString *key = [text substringToIndex:beginningOfNumber.location];
NSString *stringValue = [text substringFromIndex:beginningOfNumber.location];
NSInteger value = [stringValue integerValue];
// Output: 2012-07-29 14:08:56.504 Testing App[46439:fb03] key: randomtext, value: 12345
文字列と数値の間に区切り文字列を追加する必要があります。
この例では「~」。
NSInteger はオブジェクトではないため、「*」は使用しないでください。
NSString *test = @"randomtext~12345";
NSArray *testItems = [test componentsSeparatedByString:@"~"];
NSString *key = [testItems objectAtIndex:0];
NSInteger value = [[testItems objectAtIndex:1] intValue];
NSLog(@"test key=%@ and value=%ld", key, value);