Удалите символ новой строки из первой строки NSString

Почтовые индексы - это строки. В некоторых комментариях эти строки могут состоять только из числовых цифр, но это не делает их целыми числами. И рано или поздно ваша потальная система иссякнет и решит начать использовать буквы. Если ваша база данных использует целые числа для поля почтового индекса, вы будете в глубокой задумчивости.

Итог - если вы не будете делать арифметику, это, вероятно, не совсем число.

16
задан Brock Woolf 5 September 2009 в 09:59
поделиться

3 ответа

This should do the trick:

NSString * ReplaceFirstNewLine(NSString * original)
{
    NSMutableString * newString = [NSMutableString stringWithString:original];

    NSRange foundRange = [original rangeOfString:@"\n"];
    if (foundRange.location != NSNotFound)
    {
        [newString replaceCharactersInRange:foundRange
                                 withString:@""];
    }

    return [[newString retain] autorelease];
}
11
ответ дан 30 November 2019 в 15:26
поделиться
[string stringByTrimmingCharactersInSet:[NSCharacterSet newlineCharacterSet]]

will trim your string from any kind of newlines, if that's what you want.

[string stringByReplacingOccurrencesOfString:@"\n" withString:@"" options:0 range:NSMakeRange(0, 1)]

will do exactly what you ask and remove newline if it's the first character in the string

39
ответ дан 30 November 2019 в 15:26
поделиться

Вместо того, чтобы создавать NSMutableString и использовать несколько вызовов сохранения / освобождения, вы можете использовать только исходную строку и упростить код, используя вместо этого следующее: (требуется 10,5+)

NSRange foundRange = [original rangeOfString:@"\n"];
if (foundRange.location != NSNotFound)
    [original stringByReplacingOccurrencesOfString:@"\n"
                                        withString:@""
                                           options:0 
                                             range:foundRange];

( См. -stringByReplacingOccurrencesOfString: withString: options: range: для подробностей.)

Результат последнего вызова метода вызова можно даже безопасно присвоить исходному ЕСЛИ вы автоматически выпускаете то, что там сначала, чтобы не допустить утечки памяти.

6
ответ дан 30 November 2019 в 15:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: