题目
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,在单行注释//内会被转义并导致编译出错,但是在多行注释/.../里不会。