Objective C如何检测NSString中的一个或多个空格

时间:2011-10-09 23:38:55

标签: objective-c nsstring

我已经看到了我的任务的一个答案,但我现在找不到它。 我想检测一个字符串是否有空字并且至少包含“”或“”(两个空格“或多个空格,或者不是。 如果没有,我会将此添加到Nsmutablearray。 如果是空的或至少有一个空格,我希望不要写入mutablearray。

如何解决这个问题?

2011年10月12日编辑:

伙计们,谢谢。

我很抱歉,我不清楚我的愿望。我想检查字符串是否为空或包含没有任何字符的空格。我在下面发布了我的答案。

6 个答案:

答案 0 :(得分:6)

我不确定它是否是最有效的方法,但您可以拆分数组并查看长度是否大于1:

if ([string componentsSeparatedByString:@" "].count > 1)

http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/Reference/NSString.html

答案 1 :(得分:3)

取决于您是否正在寻找任何空格或空格。对于空间,您可以使用:

if( [string length] == 0 ||
    !NSEqualRanges( [string rangeofString:@" "],
                    NSMakeRange(NSNotFound, 0) ) )
{
    // either the string is empty or we found a space
} else {
    // we didn't find a space and the string is at least of length 1
}

如果有空格,请使用空白字符集:

if( [string length] == 0 ||
    !NSEqualRanges( [string rangeOfCharacterFromSet:
                     [NSCharacterSet whitespaceCharacterSet]],
                    NSMakeRange(NSNotFound, 0) ) )
{
    // either the string is empty or we found a space
} else {
    // we didn't find a space and the string is at least of length 1
}

如果您愿意,请将whitespaceCharacterSet替换为whitespaceAndNewlineCharacterSet

答案 2 :(得分:3)

    if( bookmarked.length == 0 )
    {
        NSLog (@"not allowed: empty");

    } 
    else if ([[bookmarked stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]] length] == 0)        
    { 
        NSLog (@"not allowed: whitespace(s)");
    }

    else 
    {
        [bookmarklist addObject:bookmarked];
    }

答案 3 :(得分:2)

查看NSString的{​​{3}}。

具体来说,请查看查找字符和子字符串部分,了解您想要的方法,可能您想多次使用– rangeOfString:options:range:

另外,请查看替换子字符串部分,了解您想要的方法,可能您要使用– stringByReplacingOccurrencesOfString:withString:options:range:

答案 4 :(得分:1)

查看NSRegularExpression课程和编码示例。

答案 5 :(得分:1)

NSString *myString = @"ABC defa   jh";
int spaceCount = [[myString componentsSeparatedByString:@" "] count] - 1;

if (!spaceCount) {
    // Zero spaces, Do Something
} else if (spaceCount <= 2) {
    // 1-2 spaces add this to NSMutableArray (although the wording about what you wanted to do in each case is confusing, so adjust for your needs)
} else {
    // 3+ spaces, Do Not add this to NSMutableArray (adjust for your needs)
}