Objective c 如何从NSString中提取/拆分数字和字符串

Objective c 如何从NSString中提取/拆分数字和字符串,objective-c,xcode,Objective C,Xcode,我有一个NSString*text=@“randomtext12345” 文本字符串始终以“字符串”(未知长度)开头,后跟“数字”(整数类型) 文本之间没有“分隔符”,如何检测字符串和整数?为了提取/分离/分离出要成为 NSString *key = @"randomtext"; NSInteger value = 12345; 您需要在字符串和数字之间添加分隔符字符串。 本例中为“~”。 NSInteger不是对象,所以不要使用“*” 这假设所有数值在末尾分组在一起(即“随机文本”部分中

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

文本字符串始终以“字符串”(未知长度)开头,后跟“数字”(整数类型)

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

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

您需要在字符串和数字之间添加分隔符字符串。
本例中为“~”。
NSInteger不是对象,所以不要使用“*”



这假设所有数值在末尾分组在一起(即“随机文本”部分中没有数字)。此外,我没有包括错误检查,以确保输入字符串(
文本
)的格式正确。(即必须有一个字母部分后跟一个数字部分):


我认为您使用的
NSInteger
是错误的。您的输入是否总是采用相同的格式?
是否始终是字符串?或者它可以包含数字?@RichardJ.RossIII ya,“键”始终是一个字符串此时文本之间没有“分隔符”您知道文本或测试字符串的数字部分的确切长度吗?它应该是随机的,但在我的情况下,字符长度可以从1-3变化,数值范围从0-999。表示最小文本长度为2(示例:a1),最大文本长度为6(示例:abc999)
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);
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