Как удалить начальные 0 в тексте uitextfield в iphone SDK
Фрагмент кода:
NSString *tempStr = self.consumerNumber.text; if ([tempStr hasPrefix:@"0"] && [tempStr length] > 1) { tempStr = [tempStr substringFromIndex:1]; [self.consumerNumbers addObject:tempStr];> }
Я попробовал эти вещи и убрал только один ноль. как убрать больше одного нуля
Выход:001600240321
Ожидаемый результат:1600240321
Любая помощь действительно ценится
Заранее спасибо!!!!!
5 ответов
Попробуйте использовать это
NSString *stringWithZeroes = @"001600240321";
NSString *cleanedString = [stringWithZeroes stringByReplacingOccurrencesOfString:@"^0+" withString:@"" options:NSRegularExpressionSearch range:NSMakeRange(0, stringWithZeroes.length)];
NSLog(@"Clean String %@",cleanedString);
Чистая строка 1600240321
Преобразовать строку в значение int и переназначить это значение в строку,
NSString *cleanString = [NSString stringWithFormat:@"%d", [string intValue]];
o/p:-
1600240321
Вы можете добавить рекурсивную функцию, которая вызывается до тех пор, пока строка не начнется с чего-то другого, кроме 0:
-(NSString*)removeZerosFromString:(NSString *)anyString
{
if ([anyString hasPrefix:@"0"] && [anyString length] > 1)
{
return [self removeZerosFromString:[anyString substringFromIndex:1]];
}
else
return anyString;
}
так что вы просто позвоните в вашем случае:
NSString *tempStr = [self removeZerosFromString:@"000903123981000"];
NSString *str = @"001600240321";
NSString *newStr = [@([str integerValue]) stringValue];
Если NSString
содержит только цифры. Другой мудрый использовать это:
-(NSString *)stringByRemovingStartingZeros:(NSString *)string
{
NSString *newString = string;
NSInteger count = 0;
for(int i=0; i<[string length]; i++)
{
if([[NSString stringWithFormat:@"%c",[string characterAtIndex:i]] isEqualToString:@"0"])
{
newString = [newString stringByReplacingCharactersInRange:NSMakeRange(i-count, 1) withString:@""];
count++;
}
else
{
break;
}
}
return newString;
}
Просто назовите этот метод: -
NSString *stringWithZeroes = @"0000000016909tthghfghf";
NSLog(@"%@", [self stringByRemovingStartingZeros:stringWithZeroes]);
OutPut: 16909tthghfghf
Попробуйте метод `stringByReplacingOccursionsOfString´ следующим образом:
NSString *new = [old stringByReplacingOccurrencesOfString: @"0" withString:@""];
Извините: это не поможет вам из-за большего "0" в средней части вашей строки!