使用反斜杠iOS连接两个字符串

时间:2017-02-10 07:04:54

标签: ios objective-c

我是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"

我真的被这个问题困住了。任何帮助表示赞赏

3 个答案:

答案 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