检查 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 是不是包含一个单词并且不包含另一个单词

如何检查字符串是不是包含子字符串并且在 Bash 中不包含 [重复]

检查 Set 是不是不包含 null 的巧妙方法