Objective c 检查NSMutableString是否不包含特定字符

Objective c 检查NSMutableString是否不包含特定字符,objective-c,nsmutablestring,Objective C,Nsmutablestring,有没有办法检测NSString是否不包含特定的字符(在本例中为“-”)呢?例如,如果我有NSString@“-OU”和NSString@“YOU”,当字符串是@“YOU”而不是@“-OU”时,是否有办法触发UIAlert 编辑:顺便说一句,我正试图使任何字符串都具有动态性。我目前有以下代码,想知道这是否可行: - (BOOL) isDone:(NSString *)str{ unichar dash = '-'; for(int i = 0; i < [str

有没有办法检测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;
        }
    }

}
-(BOOL)isDone:(NSString*)str{
unichar dash='-';
对于(int i=0;i<[str length];i++){
if([str characterAtIndex:i]!=dash){
返回YES;
}
否则{
返回否;
}
}
}
此代码当前在xcode中抛出以下警告:“控件可能会到达非无效函数的末尾”。

尝试此操作

NSString *yourString=@"-OU";  
if ([yourString rangeOfString:@"-"].location == NSNotFound) {
  NSLog(@"string does not contain -");
} else {
  NSLog(@"string contains -");
}
试试这个

NSString *yourString=@"-OU";  
if ([yourString rangeOfString:@"-"].location == NSNotFound) {
  NSLog(@"string does not contain -");
} else {
  NSLog(@"string contains -");
}

如果你想用你自己的构建函数测试单词中是否有破折号,我会这样做

 - (BOOL) isDone:(NSString *)str{

       unichar dash = '-';

    for(int i = 0; i < [str length]; i ++){
        if([str characterAtIndex:i] == dash){
            return YES;
        }

    }
    return NO;

}
-(BOOL)isDone:(NSString*)str{
unichar dash='-';
对于(int i=0;i<[str length];i++){
if([str characterAtIndex:i]==破折号){
返回YES;
}
}
返回否;
}

通过这种方式,它将在整个字符串中循环,直到找到破折号,并在找到破折号后立即终止,否则一旦检查完整个字符串,它将返回NO。

如果您试图使用自己的构建函数测试破折号是否在单词中,我会这样做

 - (BOOL) isDone:(NSString *)str{

       unichar dash = '-';

    for(int i = 0; i < [str length]; i ++){
        if([str characterAtIndex:i] == dash){
            return YES;
        }

    }
    return NO;

}
-(BOOL)isDone:(NSString*)str{
unichar dash='-';
对于(int i=0;i<[str length];i++){
if([str characterAtIndex:i]==破折号){
返回YES;
}
}
返回否;
}

通过这种方式,它将在整个字符串中循环,直到找到破折号,并在找到破折号后立即终止,否则一旦检查完整个字符串,它将返回NO。

我不太确定您要做什么,您是否只是测试第一个字符是否为破折号?如果是,那么为什么循环?你的循环在第一个字符后终止,不管它是真是假我只是想测试单词中是否有破折号。我不太确定你想做什么,你只是测试第一个字符是否是破折号?如果是,那么为什么循环?你的循环在第一个字符后终止,不管它是真是假我只是想测试单词中是否有破折号!但实际上,我需要颠倒您的示例中的是和否(为您做了)。请注意,我将if语句从!=to==简化事情,但这又一次取决于你想要返回的值。检查下面的答案-使用
rangeOfString
ahhh很好,谢谢!但实际上,我需要颠倒您的示例中的是和否(为您做了)。请注意,我将if语句从!=to==简化事情,但这再次取决于您希望返回的值。请检查下面的答案-使用
rangeOfString