Search code examples
javaunicodeunicode-literals

Getting empty character literal error in java code that specified unicode literals


Why does this code

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

give

'empty character literal'

when I try to compile ?


Solution

  • The unicode code points in the source file are replaced by the actual character they represents. Since '\u0027' is for ' (apostrophe). So, your return statement is replaced to:

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

    Note: \u0092 will also be replaced by control character.

    So, the 2nd argument is an invalid character literal. You can rather use \' directly.