1

我是ios开发新手。

NSString *newString2 = [aString stringByReplacingOccurrencesOfString:@"1," withString:@""];

我的问题是我不知道如何检查任何数字,即stringByReplacingOccurrencesOfString:@"anyInt,“其中任何 Int 是integer从 1 到 N 的任何数字。

提前致谢!

4

6 回答 6

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 文档,这里也有很好的教程

于 2013-10-23T08:33:31.927 回答
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 文档的概述部分以获取更多信息。

于 2013-10-23T09:17:28.490 回答
1

如果要检查范围然后要替换,请使用以下 api:-

- (NSString *)stringByReplacingCharactersInRange:(NSRange)range withString:(NSString *)replacement
于 2013-10-23T08:58:39.153 回答
1

只需这两行即可从字符串中删除所有数字。

 NSCharacterSet *numbers = [NSCharacterSet 
    characterSetWithCharactersInString:@"0123456789"];

 NSString *newString = [[tempstr componentsSeparatedByCharactersInSet: numbers] componentsJoinedByString:@""];
于 2013-10-23T08:33:37.903 回答
1

对于第一部分中的编号大于 0,显示第二部分。对于第一部分中的 0,显示 --。

试试下面的代码,

NSString * aString = @"1,10";
NSString *newString2;
NSArray *items = [aString componentsSeparatedByString:@","];

if([[items objectAtIndex:0] integerValue]>0)
  newString2 = [items objectAtIndex:1];
else
    newString2 = @"--";
于 2013-10-23T09:01:45.683 回答
0

为什么要检查 Integer 的存在,因为最终您会将其替换为''. 所以只需使用下面的行

NSString *newString2 = [aString stringByReplacingOccurrencesOfString:[NSString StringWithFormat:@"%d", anyInt], withString:@""]; 

以上行将满足您的要求。

于 2013-10-23T08:43:18.290 回答