如何从NSString中提取/拆分数字和字符串输出

时间:2012-07-29 17:06:55

标签: objective-c xcode

我有一个NSString * text = @“randomtext12345”

文本字符串将始终以'string'(未知长度)开头,后跟'number'(整数类型)。

文本之间没有“分隔符”,如何检测哪个是字符串和整数?为了提取/分离/分离文本成为

NSString *key = @"randomtext";
NSInteger value = 12345; 

2 个答案:

答案 0 :(得分:5)

这假定所有数值在末尾被分组在一起(即“randomtext”部分中没有数字)。另外,我没有包含错误检查以确保输入字符串(text)格式正确。 (即必须有一个alpha部分后跟一个数字部分):

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

答案 1 :(得分:1)

您需要在字符串和数字之间添加分隔符字符串 在这个例子中“〜” 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);