如何提取的NSString /分数字和串出(How to extract/split numbers

2019-09-20 09:30发布

我有一个的NSString *文本= @ “randomtext12345”

文本串将总是与“字符串”(未知长度)开始,后跟“编号”(整数型)。

有没有“分隔符”中的文本之间,我怎么发现这是字符串和整数? 为了提取/独立/独立出来的文字变成

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

Answer 1:

这假定所有数值在端分组在一起(即有在“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


Answer 2:

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


文章来源: How to extract/split numbers and string out from NSString