我从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
。