我正在创建一个应用程序,其中需要将ASCII艺术存储到数据库中。我以下面的格式存储字符串。
“___________ \ n | --------- | -O \ n / ___________ \\ n | ______________ | \ n \ ____________ /”
当我检索数据并将其显示在标签中时,我希望解析换行符和反斜杠,以便显示ASCII艺术的真实形状。
我该如何解析这种字符串?
答案 0 :(得分:0)
NSString有一个方法可以做你想要的,即用换行符替换一个小号\ n(用符号表示为\ n)。在c格式的字符串中,您可以使用双斜杠让库知道第二个slach是真正的slach而不是转义符号。因此,假设您能够将数据从sqlite加载到NSString中,这应该可以工作:
newString = [yourStringFromSQLite stringByReplacingOccurrencesOfString:@"\\n" withString:@"\n"];
答案 1 :(得分:0)
如果您正在使用\ n仅用于创建新行,那么只需在数据库中插入值时保留空间并为标签设置以下属性 - >
1)保持宽度只是为了适合第一个单词。
2)linewode到wordwrap(因为宽度将不可用,它会将下一个单词换行到新行)
3)设置否。的行数为0
希望这会有所帮助。
答案 2 :(得分:-1)
尝试使用扫描程序删除html实体
- (NSString *)flattenHTML:(NSString *)html trimWhiteSpace:(BOOL)trim {
NSScanner *theScanner;
NSString *text = nil;
theScanner = [NSScanner scannerWithString:html];
while ([theScanner isAtEnd] == NO) {
[theScanner scanUpToString:@"<" intoString:NULL] ;
[theScanner scanUpToString:@">" intoString:&text] ;
html = [html stringByReplacingOccurrencesOfString:[ NSString stringWithFormat:@"%@>", text] withString:@" "];
}
return trim ? [html stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] : html;
}
并调用此方法,修剪后的字符串需要显示