2010-12-04 93 views
0

我正在制作一个应用程序,要求将ASCII艺术存储到数据库中。我以下面的格式存储字符串。使用换行符和反斜杠呈现ASCII艺术字符串

“___________ \ N | --------- | -O \ N/___________ \\ N | ______________ | \ n \ ____________ /”

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

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

回答

0

NSString有一个方法来做你想做的事情,它是用一个换行符(它被象征为\ n)替换一个litteral \ n。在一个c格式的字符串中,你可以使用双斜线让图书馆知道第二个slach是一个真正的符号而不是一个转义符号。所以这应该假设你已经能够从源码加载数据到一个NSString:

newString = [yourStringFromSQLite stringByReplacingOccurrencesOfString:@"\\n" withString:@"\n"]; 
-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; 
} 

,并调用此方法在您的修整字符串需要显示

+1

我不是他试图剥离html标签的东西,只用实际换行符替换'\ n'的出现。 – 2010-12-04 10:16:03

0

如果您使用\ n只是创造新的生产线则不用的,仅仅保持空间,同时将数据库值和设定为如下标签属性 - >
1)保持宽度只是科幻第一个字。 2)将linebreakmode转换为wordwrap(因此宽度将不可用,它会将下一个单词换行为新行)
3)设置编号。的行到0
希望这会有所帮助。