我是Objective-C的新手,我需要一个像“abc \ 123”
这样的字符串要做到这一点我尝试过: -
NSString *first = @"abc\\"; //Should escape
NSString *second= @"123";
NSString *combined= [NSString stringWithFormat:@"%@%@", first, second]; //which should give abc\123
但我得到的输出为"abc\\123"
。
我真的被这个问题困住了。任何帮助表示赞赏
答案 0 :(得分:1)
反斜杠本身就是转义字符,因此需要提前读取字符,你需要将其转义。
这会产生您喜欢的相同输出。
NSString *first = @"abc\\";
您只需再添加一个backshash @" abc \\\"给你missing character ""
运行时错误。
NSString *first = @"abc\\"; // log results abc\
NSString *first = @"abc\\\\"; // log results abc\\
可以通过遵循相同的反斜杠规则在格式说明符之间添加。
NSString *combined= [NSString stringWithFormat:@"%@\\%@", first, second];
答案 1 :(得分:0)
输出问题,实际上字符串是正确的。
let array = ["abc", "123"]
let separator = "\\"
separator.characters.count //count=1
let x = array.joined(separator: "\\")
x.characters.count //count = 7
答案 2 :(得分:-2)
您可以使用
stringByReplacingOccurrencesOfString:withString:
所以在你的情况下
NSString *first = @"abc\\"; //Should escape
NSString *second= @"123";
NSString *first = [first stringByReplacingOccurrencesOfString:@"\\" withString:@"\"];
NSString *combined= [NSString stringWithFormat:@"%@%@", first, second];
因此,您的结果将为abc\123