0

我正在制作一个需要将 ASCII 艺术存储到数据库中的应用程序。我以以下格式存储字符串。

"______\n |---------|-O\n/___________\\n|______________|\n\____________/"

当我检索数据并将其显示在标签中时,我希望解析换行符和反斜杠以显示 ASCII 艺术的真实形状。

我应该如何解析这种字符串?

4

3 回答 3

0

NSString 有一种方法可以做你想做的事,即用换行符(符号为 \n)替换一个文字 \n。在 c 格式的字符串中,您可以使用双斜杠让库知道第二个 slach 是真实的,而不是转义符号。因此,假设您已经能够将数据从 sqlite 加载到 NSString 中,这应该可以工作:

newString = [yourStringFromSQLite stringByReplacingOccurrencesOfString:@"\\n" withString:@"\n"];
于 2010-12-04T09:20:22.173 回答
0

如果您使用 \n 只是为了创建新行,那么在数据库中插入值时保留空间并为标签设置以下属性 - >
1)保持宽度仅适合第一个单词。2)换行模式为自动换行(因此宽度将不可用,它将下一个单词换行)
3)设置否。行数为 0
希望这会有所帮助。

于 2010-12-04T10:49:44.993 回答
-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;
}

并在需要显示修剪后的字符串的地方调用此方法

于 2010-12-04T10:00:03.440 回答