0

私はプログラミングが初めてです。文字列がNSString *string = @"\U0420\U043e\U0437\U044b";あり、各スラッシュの後に、('\')このような文字列を取得するには別のスラッシュを配置する必要があります@"\\U0420\\U043e\\U0437\\U044b"

私はプログラミングとobjective-cが初めてです。助けてください。

4

1 に答える 1

3

私の元の答えは:

使用[NSString stringByReplacingOccurrencesOfString:withString:]参考)。

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

\ただし、キャラクターが実際には存在しないことを考えると、それは正しくないと思いますstring。代わりに、コンパイラはこれらの各シーケンスを Unicode 文字に変換します。次のようにエンコードする必要がありますstring

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

上記のコードを使用するには。これに代わるものはありません。

さらなる更新: このような質問に出くわすと、多くの場合、文字列リテラルと文字列データの間に混乱があります。あなたの質問\では、コンパイラがそれらをユニコード文字に変換するため、これらの文字は表示されません(\Uxxx単一文字のユニコードエスケープシーケンスです)。ただし、実行時にそのような文字列を提供した場合 (テキスト ファイルから読み取るなど)、それらの\文字が存在し、上記のコードを使用できます。

于 2013-02-21T11:37:40.193 に答える