【发布时间】:2015-11-22 21:46:11
【问题描述】:
我将以编程方式创建一个 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 中是否有更简单的方法。我可能想要考虑支持的字符串是否发生了任何有趣/新的变化“Swiftifying”上面的代码?我做了一些谷歌搜索,但没有任何反应,我真的想确保我在这里做得很好。 :-)
谢谢!
【问题讨论】: