Я новичок в изучении 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);