我是ios开发的新手。
NSString *newString2 = [aString stringByReplacingOccurrencesOfString:@"1," withString:@""];
我的问题是我不知道如何检查任何数字,即stringByReplacingOccurrencesOfString:@"anyInt,
“,其中任何Int是从1到N的任何integer
数字。
提前致谢!
答案 0 :(得分:3)
使用正则表达式是最佳解决方案:
NSError *error;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"[1-9]" options:NSRegularExpressionCaseInsensitive error:&error];
NSString *modifiedString = [regex stringByReplacingMatchesInString:string options:0 range:NSMakeRange(0, [string length]) withTemplate:@""];
检查官方NSRegularExpression documentation,还有一个很好的教程here
答案 1 :(得分:3)
正则表达式可能是最简单的解决方案。无论您只想删除单个数字还是多个数字,正则表达式都可以提供帮助。
NSString *aString = @"Apple 10, Banana 3, Carrot 5, Durian 42, Eggplant 4,";
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"[0-9]+," options:0 error:NULL];
NSString *newString = [regex stringByReplacingMatchesInString:aString options:0 range:NSMakeRange(0, [aString length]) withTemplate:@""];
NSLog(@"%@", newString);
// result should be "Apple Banana Carrot Durian Eggplant "
正则表达式起初可能看起来势不可挡或难以理解,但这只是因为它们在搜索和替换文本方面非常强大。有关详细信息,请查看NSRegularExpression文档的overview部分。
答案 2 :(得分:1)
只需要这两行就可以删除字符串中的所有数字。
NSCharacterSet *numbers = [NSCharacterSet
characterSetWithCharactersInString:@"0123456789"];
NSString *newString = [[tempstr componentsSeparatedByCharactersInSet: numbers] componentsJoinedByString:@""];
答案 3 :(得分:1)
如果您想检查范围然后想要替换,请使用以下api: -
- (NSString *)stringByReplacingCharactersInRange:(NSRange)range withString:(NSString *)replacement
答案 4 :(得分:1)
对于大于0的第一部分中的nos,显示第二部分。对于第一部分中的0,显示 - 。
尝试以下代码,
NSString * aString = @"1,10";
NSString *newString2;
NSArray *items = [aString componentsSeparatedByString:@","];
if([[items objectAtIndex:0] integerValue]>0)
newString2 = [items objectAtIndex:1];
else
newString2 = @"--";
答案 5 :(得分:0)
为什么要检查Integer是否存在,因为最终你会用''
替换它。所以只需使用以下行
NSString *newString2 = [aString stringByReplacingOccurrencesOfString:[NSString StringWithFormat:@"%d", anyInt], withString:@""];
以上行将满足您的要求。