使用换行符和反斜杠渲染ASCII艺术字符串

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用换行符和反斜杠渲染ASCII艺术字符串相关的知识,希望对你有一定的参考价值。

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

“___________ n | --------- | -O n / ___________ n | ______________ | n ____ /”

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

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

答案

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

newString = [yourStringFromSQLite stringByReplacingOccurrencesOfString:@"\n" withString:@"
"];
另一答案

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

另一答案

尝试使用扫描仪删除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;
}

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

以上是关于使用换行符和反斜杠渲染ASCII艺术字符串的主要内容,如果未能解决你的问题,请参考以下文章

Python:从文本文件打印 ascii 艺术,反斜杠加倍

斜杠反斜杠以及换行符

print语句中逗号(,)和反斜杠()的区别

打印完整的 ascii 艺术

Javascript 和反斜杠替换

使用用户提交的内容重新填充 textarea(使用 ASCII 代码并且在某些字符之前没有附加的正斜杠)