将NSString中包含字符Objective-C的数字加1。>

问题描述 投票:2回答:1

我不熟悉Objective-C(我的第一门编程语言!),并尝试编写一个小程序,该程序将在字符串中包含的数字上加1。例如。 AA1BB变为AA2BB。。

到目前为止,我已经尝试提取数字并加1。然后提取字母并将所有内容重新添加到新字符串中。我已经取得了一些成功,但无法恢复到初始字符串的原始排列。

到目前为止,我得到的代码给出2BB的结果,而忽略了数字之前的字符,这不是我想要的数字(在此示例中,我尝试的结果将是AA2BB)。我不知道为什么!

NSString* aString = @"AA1BB";

NSCharacterSet *numberCharset = [NSCharacterSet characterSetWithCharactersInString:@"0123456789-"]; //Creating a set of Characters object//

NSScanner *theScanner = [NSScanner scannerWithString:aString];

int someNumbers = 0;

while (![theScanner isAtEnd]) {
  // Remove Letters
  [theScanner scanUpToCharactersFromSet:numberCharset
                             intoString:NULL]; 
  if ([theScanner scanInt:&someNumbers]) {}
}

NSCharacterSet *letterCharset = [NSCharacterSet characterSetWithCharactersInString:@"ABCDEFGHIJKLMNOPQRSTUVWXYZ"];

NSScanner *letterScanner = [NSScanner scannerWithString:aString];

NSString* someLetters;
while (![letterScanner isAtEnd]) {
     // Remove numbers
     [letterScanner scanUpToCharactersFromSet:letterCharset
                                intoString:NULL];

   if ([letterScanner scanCharactersFromSet:letterCharset intoString:&someLetters]) {}
}

++someNumbers; //adds +1 to the Number//


NSString *newString = [[NSString alloc]initWithFormat:@"%i%@", someNumbers, someLetters]; 

NSLog (@"String is now %@", newString);

我不熟悉Objective-C(我的第一门编程语言!),并尝试编写一个小程序,该程序将在字符串中包含的数字上加1。例如。 AA1BB变为AA2BB。 。到目前为止,我...

objective-c nsstring
1个回答
-1
投票

这是使用正则表达式的替代解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.