Задача C Как обнаружить одно или несколько пробелов в строке NSString - PullRequest
0 голосов
/ 10 октября 2011

Я видел один ответ для своей задачи, но я не мог найти его сейчас.Я хочу определить, содержит ли строка пустое слово и содержит хотя бы "" или "" (два пробела "или более нескольких пробелов, ИЛИ нет. Если нет, я бы добавил это в Nsmutablearray. Если да, то с пустым или хотя бы одним пробеломЯ хотел бы, чтобы это не было записано в mutablearray.

Как решить эту проблему?

РЕДАКТИРОВАТЬ 12 октября 2011:

Ребята, спасибо.

Опять же, я сожалею, что мне неясно мое желание. Я хотел проверить, является ли строка пустой или содержит пробелы без каких-либо символов. Я разместил свой ответ ниже.

Ответы [ 6 ]

6 голосов
/ 10 октября 2011

Я не уверен, что это самый эффективный способ сделать это, но вы можете разбить ваш массив и посмотреть, больше ли длина 1:

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

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

3 голосов
/ 10 октября 2011
    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 голосов
/ 10 октября 2011

Зависит, если вы ищете какие-либо пробелы или просто пробелы. Для пробелов вы можете использовать:

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 голосов
/ 10 октября 2011

Посмотрите документацию для NSString.

В частности, посмотрите в разделе Поиск символов и подстрок нужный вам метод, возможно, вы захотитеиспользуйте – rangeOfString:options:range: несколько раз.

Кроме того, посмотрите в разделе Замена подстрок нужный вам метод, возможно, вы хотите использовать – stringByReplacingOccurrencesOfString:withString:options:range:

1 голос
/ 10 октября 2011
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)
}
1 голос
/ 10 октября 2011

Посмотрите на класс NSRegularExpression и примеры кодирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...