2013-02-21 142 views
0

我是編程新手。我有字符串NSString *string = @"\U0420\U043e\U0437\U044b";和每個斜槓('\')後我需要把另一個斜槓得到像這樣的字符串@"\\U0420\\U043e\\U0437\\U044b"如何將字符串放入特定字符串後的字符串

我是編程和objective-c的新手。請幫忙。

+0

不清楚你想要什麼,因爲這些字符串是相同的? – trojanfoe 2013-02-21 11:32:41

+0

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

回答

3

我原來的答案是:

使用[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'是否會做你想要的。 – trojanfoe 2013-02-21 11:55:34

+0

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

相關問題