7

なぜこのコードは

 public class Apostrophier
{
    public static String replace(String s)
    {
        return s.replace('\u0092','\u0027');
    }
}

与える

'空文字リテラル'

コンパイルしようとすると?

4

2 に答える 2

11

ソース ファイル内の Unicode コード ポイントは、それらが表す実際の文字に置き換えられます。なので(アポストロフィ) です'\u0027''したがって、 return ステートメントは次のように置き換えられます。

  return s.replace('\u0092',''');  

注: \u0092制御文字にも置き換えられます。

したがって、2 番目の引数は無効な文字リテラルです。むしろ\'直接使用できます。

于 2014-01-17T17:21:52.643 に答える