我将以编程方式创建一个CSV文件,并希望在编写字符串之前对其进行适当转义。
我假设我需要对逗号进行转义,并且可能需要用单引号或双引号将每个值括起来(因此也需要对这些值进行转义),以及任何回车/换行常量。
我本来打算自己写的,但后来在Objective-C中发现了这个,我说为什么不直接转换它呢,因为它看起来很完整:
-(NSString *)escapeString:(NSString *)s
{
NSString * escapedString = s;
BOOL containsSeperator = !NSEqualRanges([s rangeOfString:@","], NSMakeRange(NSNotFound, 0));
BOOL containsQuotes = !NSEqualRanges([s rangeOfString:@"\""], NSMakeRange(NSNotFound, 0));
BOOL containsLineBreak = !NSEqualRanges([s rangeOfString:@"\n"], NSMakeRange(NSNotFound, 0));
if (containsQuotes) {
escapedString = [escapedString stringByReplacingOccurrencesOfString:@"\"" withString:@"\"\""];
}
if (containsSeperator || containsLineBreak) {
escapedString = [NSString stringWithFormat:@"\"%@\"", escapedString];
}
return escapedString;
}
然而,在我去转换之前,我想问一下社区,现在我们在Swift 2中,是否有更简单的方法。是否有任何有趣的/新的字符串变化发生了,我可能想考虑支持“快速化”上述代码?我做了一些谷歌搜索,但没有跳出来,我真的想确保我在这里做得很好。:-)
谢谢你!
1条答案
按热度按时间dddzy1tm1#
您可以减少代码并将其保存为String扩展名:
也很少测试: