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

列波夫斯基1213

我刚开始学习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);
瓦迪安

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

它找到整数范围(\\d+是一个或多个数字),将其提取,递增并替换给定范围内的值。

NSString* aString = @"AA1BB";
NSRange range = [aString rangeOfString:@"\\d+" options:NSRegularExpressionSearch];
if (range.location != NSNotFound) {
    NSInteger numericValue = [aString substringWithRange:range].integerValue;
    numericValue++;
    aString = [aString stringByReplacingCharactersInRange:range withString:[NSString stringWithFormat:@"%ld", numericValue]];

}
NSLog(@"%@", aString);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将字面数字(三)加 1(四)

在数字上加1比在C ++中同时添加所有内容慢吗?

PHP:给字符串中的每个数字加1

对于包含字符和数字的字符串,如何只对所有数字加 1

如何将加 1 添加到由数字组成的字符串

在范围内将16位数字的前15位数字加1

将中间带有空终止字符的 C 无符号字符数组转换为 Objective-C NSString

将目录中的最后一个数字加1?

将数字数组转换为单个数字,加1,然后转换回数字数组

MySQL中的数字加字符串

如何将Unicode十六进制数字变量转换为NSString中的字符?

Python:从字符串中提取数字值,并将每个值加1

一个mpi程序,将数字从1到16000000相加,结果不同

使用python检查数据库中是否存在某个数字并将变量加1

在某个数字上加 1 的证明会改变 Coq 中的奇偶校验

C#加/减字符串数字在一起

如何将Swift String桥接到Objective C NSString?

Objective-C如何将NSURL转换为NSString?

Unity / Objective-C:无法将char *转换为NSString

使用Objective-C PFQuery查找数组中包含的字符串吗?

Objective-C:查找字符串中的数字

C ++反转字符*加“ a”

C ++将1加到非常小的数字?

Objective-C中连接NSString的快捷方式

NSString比较在Objective-C中不起作用

如何检查字符串末尾的一些数字,如果存在,将它们加1?

在c ++中,可以将浮点类型加1的最大整数是多少?

如何在不崩溃的情况下将WebView包含在Objective C中

将数字舍入到Objective-C中的指定精度