3

在编译时这一行:

System.out.println(new String("\44"));

将打印 ACSII 字符"$"

"\44"但是,当作为命令行参数传递时如何打印它?

4

1 回答 1

3

你基本上去掉了前导\并使用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"
于 2013-10-02T20:03:23.250 回答