检查 NSMutableString 是不是不包含特定字符
Posted
技术标签:
【中文标题】检查 NSMutableString 是不是不包含特定字符【英文标题】:Check to see if NSMutableString does not contain a specific char检查 NSMutableString 是否不包含特定字符 【发布时间】:2011-04-21 05:17:00 【问题描述】:有没有办法检测 NSString 是否不包含特定字符(在这种情况下是“-”)?例如,如果我有 NSString @"-OU"
和 NSString @"YOU"
是否有办法在字符串为 @"YOU"
而不是 @"-OU"
时触发 UIAlert?
编辑:顺便说一句,我正在尝试使任何字符串都动态化。我目前有以下代码,想知道这是否可行:
- (BOOL) isDone:(NSString *)str
unichar dash = '-';
for(int i = 0; i < [str length]; i ++)
if([str characterAtIndex:i] != dash)
return YES;
else
return NO;
此代码当前在 xcode 中引发以下警告:“Control may reach end of non-void function”。
【问题讨论】:
【参考方案1】:试试这个
NSString *yourString=@"-OU";
if ([yourString rangeOfString:@"-"].location == NSNotFound)
NSLog(@"string does not contain -");
else
NSLog(@"string contains -");
【讨论】:
我不太确定您要做什么,您是否只是测试第一个字符是否为破折号?如果是,那么为什么要循环?你的循环在第一个字符之后终止,无论是真还是假 我只是想测试一下单词中是否有破折号。【参考方案2】:如果您尝试使用自己的构建功能测试破折号是否在单词中,我会这样做
- (BOOL) isDone:(NSString *)str
unichar dash = '-';
for(int i = 0; i < [str length]; i ++)
if([str characterAtIndex:i] == dash)
return YES;
return NO;
这样它将遍历整个字符串,直到找到破折号,并在找到破折号后立即终止,否则一旦完成检查整个字符串,它将返回 NO。
【讨论】:
啊,很好,谢谢!但实际上我需要颠倒你的例子中的 YES 和 NO (为你做的)。 请注意,我将 if 语句从 != 更改为 == 以简化事情,但这一切都取决于您希望返回的值。 检查下面的答案 - 使用rangeOfString
以上是关于检查 NSMutableString 是不是不包含特定字符的主要内容,如果未能解决你的问题,请参考以下文章
NSString NSMutableString copy mutableCopy retain weak strong
如何获取 NSMutableString 数据并将其放在不同的字符串中? [关闭]
不可变字符串 NSString与可变字符串 NSMutableString
Javascript Regex 检查 URL 是不是包含一个单词并且不包含另一个单词