我從xml提要中獲得純文本,我想知道是否有可能將文本拆分爲段落。我試圖:將NSStrings劃分爲段落
*htmlbody = [item.text stringByReplacingOccurrencesOfString:@"\n" withString:@"<br />"];
但它不起作用。
我從xml提要中獲得純文本,我想知道是否有可能將文本拆分爲段落。我試圖:將NSStrings劃分爲段落
*htmlbody = [item.text stringByReplacingOccurrencesOfString:@"\n" withString:@"<br />"];
但它不起作用。
第一和最常見的方法是:
NSArray *arr = [myString componentsSeparatedByString:@"\n"];
然而,這忽略了一個事實,有許多其它方式 其中段落或換行符可以以字符串表示 - \ r, \ r \ n或Unicode分隔符。
從蘋果公司的String Programming Guide:
NSString *string = /* assume this exists */;
unsigned length = [string length];
unsigned paraStart = 0, paraEnd = 0, contentsEnd = 0;
NSMutableArray *array = [NSMutableArray array];
NSRange currentRange;
while (paraEnd < length) {
[string getParagraphStart:¶Start end:¶End
contentsEnd:&contentsEnd forRange:NSMakeRange(paraEnd, 0)];
currentRange = NSMakeRange(paraStart, contentsEnd - paraStart);
[array addObject:[string substringWithRange:currentRange]];
}
那西港島線給你的NSString
數組與段落
聽起來像是你在正確的軌道上。或者至少,這當然是我會嘗試的方法。
也許你的新行包含回車,所以試試\ r \ n甚至可能\ n \ n但沒有你想要解析的實際內容很難辨別你應該用作分隔符。
看一看NSString的文檔componentsSeperatedByString:
NSString *list = @"Norman, Stanley, Fletcher";
NSArray *listItems = [list componentsSeparatedByString:@", "];
NSArray *paragraphs = [item.text componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]];
給你字符串的所有線路終端選項數組(每個段落之一)。
使用enumerateSubstringsInRange:options:usingBlock:
與NSStringEnumerationByParagraphs
。