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

问题描述 投票:0回答:3

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

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

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

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

ios string cocoa-touch escaping ascii-art
3个回答
0
投票

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

newString = [yourStringFromSQLite stringByReplacingOccurrencesOfString:@"\\n" withString:@"\n"];

0
投票

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


-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;
}

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

© www.soinside.com 2019 - 2024. All rights reserved.