假设我有这样的字符串:
NSString *myString = [NSString stringWithFormat:@"%@%@%@%@%@",variable1,variable2,variable3,variable4,variable5];
如果variable2
是nil
,我不希望在我的字符串中,如下所示:
NSString *myString = [NSString stringWithFormat:@"%@%@%@%@",variable1,variable3,variable4,variable5];
问题
如果没有很多if语句,有没有办法做到这一点?
答案 0 :(得分:4)
请勿使用[NSString stringWithFormat:]
,而是创建NSMutableString
并根据需要附加字符串:
NSMutableString *s = [[NSMutableString alloc] init];
if (variable1)
[s appendString:variable1];
if (variable2)
[s appendString:variable2];
if (variable3)
[s appendString:variable3];
if (variable4)
[s appendString:variable4];
if (variable5)
[s appendString:variable5];
(抱歉,我错过了你的观点"没有很多if
声明"但是我不认为可以避免这种说法。
答案 1 :(得分:1)
最简单的方法是使用压缩的三元运算符将null替换为空字符串。使用示例的略微删节版本:
NSString *myString = [NSString stringWithFormat:@"%@%@",variable1 ?: @"",variable2 ?: @""];