如何将字符串放入特定字符串后的字符串

问题描述:

我是编程新手。我有字符串NSString *string = @"\U0420\U043e\U0437\U044b";和每个斜杠('\')后我需要把另一个斜杠得到像这样的字符串@"\\U0420\\U043e\\U0437\\U044b"如何将字符串放入特定字符串后的字符串

我是编程和objective-c的新手。请帮忙。

+0

不清楚你想要什么,因为这些字符串是相同的? – *foe 2013-02-21 11:32:41

+0

不好意思,我只是纠正了 – Asike 2013-02-21 11:34:26

我原来的答案是:

使用[NSString stringByReplacingOccurrencesOfString:withString:]reference)。

NSString *string = @"\U0420\U043e\U0437\U044b"; 
NSString *converted = [string stringByReplacingOccurrencesOfString:@"\\" 
                 withString:@"\\\\\\"]; 

不过我现在不认为这是正确的给出的\字符不会实际存在于string;相反,编译器会将这些序列中的每一个转换为unicode字符。您将需要编码string就象这样:

NSString *string = @"\\U0420\\U043e\\U0437\\U044b"; 

为了使用上面的代码。我看不到任何替代方案。

更多更新:通常当我遇到像这样的问题时,字符串文字和字符串数据之间会出现混淆。在你的问题中,那些\字符将不会出现,因为编译器已经将它们转换为unicode字符(\Uxxx是单字符的Unicode转义序列)。但是,如果您在运行时提供了类似的字符串(例如,从文本文件读取),那么这些字符将存在,您可以使用上面的代码。

+0

,但是我不能这样做,因为json给我它作为“\ U0420 \ U043e \ U0437 \ U044b”,我需要转换成俄文字母。我试图用[NSString stringWithCString:[string cStringUsingEncoding:NSUTF8StringEncoding] encoding:NSNonLossyASCIIStringEncoding]将此字符串转换为“\\ U0420 \\ U043e \\ U0437 \\ U044b”(带双斜杠) – Asike 2013-02-21 11:47:15

+0

@Asike你如何验证JSON给你的字符串?如果这些斜杠字符实际存在于字符串中,那么您将需要做的不仅仅是添加斜杠。我也怀疑'stringWithCString'是否会做你想要的。 – *foe 2013-02-21 11:55:34

+0

似乎我需要用NSJSONSerialization做些事情,但无论如何谢谢 – Asike 2013-02-21 12:00:20