我有一个的NSString *文本= @ “randomtext12345”
文本串将总是与“字符串”(未知长度)开始,后跟“编号”(整数型)。
有没有“分隔符”中的文本之间,我怎么发现这是字符串和整数? 为了提取/独立/独立出来的文字变成
NSString *key = @"randomtext";
NSInteger value = 12345;
我有一个的NSString *文本= @ “randomtext12345”
文本串将总是与“字符串”(未知长度)开始,后跟“编号”(整数型)。
有没有“分隔符”中的文本之间,我怎么发现这是字符串和整数? 为了提取/独立/独立出来的文字变成
NSString *key = @"randomtext";
NSInteger value = 12345;
这假定所有数值在端分组在一起(即有在“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
您需要添加字符串和数字之间的分隔字符串。
“〜”在这个例子中。
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);