[英]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.