Как усечь NSString? - PullRequest
       2

Как усечь NSString?

2 голосов
/ 12 августа 2011

Я посмотрел на документы форматирования строки, но не мог понять, как именно это сделать.

Допустим, у меня есть такое жало

@"(01–05) Operations on the nervous system"

Я хочу создать 2 строки из этого примерно так:

@"01-05" и @"Operations on the nervous system"

Как я могу это сделать?

Вот документы, на которые я смотрел: http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Strings/Articles/FormatStrings.html

Ответы [ 3 ]

2 голосов
/ 12 августа 2011

Дайте этому шанс.Это может быть немного, я не проверил на опечатки.Но вы можете возиться с этим теперь, когда у вас есть идея.

NSString * sourceString = @"(01–05) Operations on the nervous system";

NSString *string1 = [sourceString substringToIndex:6];
string1 = [string1 stringByReplacingOccurrencesOfString:@"(" withString:@""];

//string1 = 01-05

NSString *string2 =[sourceString substringFromIndex:7];

//string2 = Operations on the nervous system
2 голосов
/ 12 августа 2011

Если вы просто хотите, чтобы первая подстрока содержалась символами "(" и ")" и что-нибудь после этого, я бы порекомендовал сделать что-то вроде этого:

NSString *original = @"(01–05) Operations on the nervous system";
NSString *firstPart = [NSString string];
NSString *secondPart = [NSString string];
NSScanner *scanner = [NSScanner scannerWithString:original];

[scanner scanUpToString:@"(" intoString:NULL];           // find first "("
if (![scanner isAtEnd]) {
    [scanner scanString:@"(" intoString:NULL];           // consume "("
    [scanner scanUpToString:@")" intoString:&firstPart]; // store characters up to the next ")"
    if (![scanner isAtEnd]) {
        [scanner scanString:@")" intoString:NULL];       // consume ")"

        // grab the rest of the string
        secondPart = [[scanner string] substringFromIndex:[scanner scanLocation]];
    }
}

Конечно, вторая строка будетв начале есть пробелы и так далее, чтобы избавиться от них, вы можете сделать что-то вроде:

secondPart = [secondPart stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet];

Преимущество использования NSScanner заключается в том, что вам не нужно жестко кодироватьначало и конец подстроки firstPart.

1 голос
/ 12 августа 2011

NSString * theFirstStringSubString = [NSString substringFromIndex: 1];

NSString * theFirstStringSecondSubstring = [theFirstStringSubString substringToIndex: 6];

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