在编译时这一行:
System.out.println(new String("\44"));
将打印 ACSII 字符"$"
"\44"
但是,当作为命令行参数传递时如何打印它?
你基本上去掉了前导\
并使用Integer.parseInt(arg, 8)
,因为八进制是以 8 为底的。
public static void main(String[] args) throws Exception {
String arg = "\\44"; // simulate command line
String argOctal = arg.substring(1); // get rid of leading \ to get an octal integer
int codePoint = Integer.parseInt(argOctal, 8);
System.out.println('\44');
System.out.println((char)codePoint);
}
印刷
$
$
这假设你跑得像
java YourClass "\44"