如何将字符串放入特定字符串后的字符串
我是编程新手。我有字符串NSString *string = @"\U0420\U043e\U0437\U044b";
和每个斜杠('\')
后我需要把另一个斜杠得到像这样的字符串@"\\U0420\\U043e\\U0437\\U044b"
如何将字符串放入特定字符串后的字符串
我是编程和objective-c的新手。请帮忙。
我原来的答案是:
使用[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转义序列)。但是,如果您在运行时提供了类似的字符串(例如,从文本文件读取),那么这些字符将存在,您可以使用上面的代码。
,但是我不能这样做,因为json给我它作为“\ U0420 \ U043e \ U0437 \ U044b”,我需要转换成俄文字母。我试图用[NSString stringWithCString:[string cStringUsingEncoding:NSUTF8StringEncoding] encoding:NSNonLossyASCIIStringEncoding]将此字符串转换为“\\ U0420 \\ U043e \\ U0437 \\ U044b”(带双斜杠) – Asike 2013-02-21 11:47:15
@Asike你如何验证JSON给你的字符串?如果这些斜杠字符实际存在于字符串中,那么您将需要做的不仅仅是添加斜杠。我也怀疑'stringWithCString'是否会做你想要的。 – *foe 2013-02-21 11:55:34
似乎我需要用NSJSONSerialization做些事情,但无论如何谢谢 – Asike 2013-02-21 12:00:20
不清楚你想要什么,因为这些字符串是相同的? – *foe 2013-02-21 11:32:41
不好意思,我只是纠正了 – Asike 2013-02-21 11:34:26