每日一练120——Java鬼代码?!(8kyu)

题目

Trollencio改变了我的代码!你能修好它吗?我的名字不是“哑巴!” o(TT_TT)o

说明:修复代码

输入

Javatlacati

产量

Hello my name is Javatlacati

输入

""

产量

Hello world!
public class GhostCode{
  public static String helloName(final String name){
//   /u000d name="dumb";
    if(name == null || name.equals(""))
      return "Hello world!";
    else
      return "Hello my name is " + name;
  }
}

测试用例:

import static org.junit.Assert.assertEquals;

import org.junit.Test;
import java.util.Random;

public class GhostCodeTest {
  @Test
  public void exampleTests() {
    String result=GhostCode.helloName("Javatlacati");
    //                    message                                     expected               actual
    assertEquals("Hello my name is Javatlacati is not "+result,"Hello my name is Javatlacati",result);
  }
}

解题

My

public class GhostCode{
  public static String helloName(final String name){
    if(name == null || name.equals(""))
      return "Hello world!";
    else
      return "Hello my name is " + name;
  }
}

Other

用多行注释/* ...*/可以有效忽略\u0000类编码格式

public class GhostCode{
  public static String helloName(final String name){
  /* \u000d name="dumb";*/
    if(name == null || name.equals(""))
      return "Hello world!";
    else
      return "Hello my name is " + name;
  }
}

大佬级别

// class GhostCode

\u0070\u0075\u0062\u006c\u0069\u0063\u0020\u0063\u006c\u0061\u0073\u0073\u0020\u0047\u0068\u006f\u0073\u0074\u0043\u006f\u0064\u0065\u0020\u007b
\u0070\u0075\u0062\u006c\u0069\u0063\u0020\u0073\u0074\u0061\u0074\u0069\u0063\u0020\u0053\u0074\u0072\u0069\u006e\u0067\u0020\u0068\u0065\u006c\u006c\u006f\u004e\u0061\u006d\u0065\u0028\u0066\u0069\u006e\u0061\u006c\u0020\u0053\u0074\u0072\u0069\u006e\u0067\u0020\u006e\u0061\u006d\u0065\u0029\u0020\u007b
\u0072\u0065\u0074\u0075\u0072\u006e\u0020\u006e\u0061\u006d\u0065\u0020\u003d\u003d\u0020\u006e\u0075\u006c\u006c\u0020\u007c\u007c\u0020\u006e\u0061\u006d\u0065\u002e\u0069\u0073\u0045\u006d\u0070\u0074\u0079\u0028\u0029\u0020\u003f\u0020\u0022\u0048\u0065\u006c\u006c\u006f\u0020\u0077\u006f\u0072\u006c\u0064\u0021\u0022\u0020\u003a
\u0022\u0048\u0065\u006c\u006c\u006f\u0020\u006d\u0079\u0020\u006e\u0061\u006d\u0065\u0020\u0069\u0073\u0020\u0022\u0020\u002b\u0020\u006e\u0061\u006d\u0065\u003b
\u007d
\u007d

后记

这题主要是考察格式Unicode类如\u0000,在单行注释//内会被转义并导致编译出错,但是在多行注释/.../里不会。

你可能感兴趣的:(每日一练120——Java鬼代码?!(8kyu))