簡體   English   中英

我如何修剪NSString中的空白(空)行?

[英]How can i trim a blank(empty) line in NSString?

我有textView,用戶可以在其中添加新行中的文本。 但是當用戶輸入多個新行而不輸入任何文本時,我想跳過所有該行,僅使用一個新行。

我有下面的字符串。

Hello,



How r u?

我想要這樣的字符串

Hello
How r u?

我已經嘗試過了但是沒有用

strContects=[strContects stringByReplacingOccurrencesOfString:@"\n\n" withString:@"\n"];

我怎樣才能做到這一點?

希望你能理解?

您可以通過遵循正則表達式代碼,用單個字符替換多個出現的省略多個換行符

NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"\n+" options:0 error:NULL];
NSString *newString = [regex stringByReplacingMatchesInString:myString options:0 range:NSMakeRange(0, [myString length]) withTemplate:@"\n"];

這將打印

你好,

你好嗎? //在新行中(所有\\ n省略,一個\\ n)

如果這里的目標是刪除所有空白行-而不僅僅是合並多個換行符-那么值得注意的是,答案不會刪除字符串中的初始空白行; 例如“ \\ n你好...”

涉及更多一點,但是嘗試以下類別:

- (NSString*)stringByRemovingBlankLines
{
    NSScanner *scan = [NSScanner scannerWithString:self];
    NSMutableString *string = NSMutableString.new;
    while (!scan.isAtEnd) {
        [scan scanCharactersFromSet:NSCharacterSet.newlineCharacterSet intoString:NULL];
        NSString *line = nil;
        [scan scanUpToCharactersFromSet:NSCharacterSet.newlineCharacterSet intoString:&line];
        if (line) [string appendFormat:@"%@\n",line];
    }
    if (string.length) [string deleteCharactersInRange:(NSRange){string.length-1,1}]; // drop last '\n'
    return string;
}

(順便說一句-這也可以處理其他類型的“換行”字符,但接受的答案不能。這不是必需的,但它出現在注釋中)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM