【问题标题】:Under what circumstances should a unicode program like this not run?这样的unicode程序在什么情况下不应该运行?
【发布时间】:2014-01-09 06:06:55
【问题描述】:

这是我 bluej ide 中的 java 代码

\u0070\u0075\u0062\u006c\u0069\u0063\u0020\u0063\u006c\u0061\u0073\u0073\u0020\u0055\u004e\u0049
\u007b
\u0070\u0075\u0062\u006c\u0069\u0063\u0020\u0073\u0074\u0061\u0074\u0069\u0063\u0020\u0076\u006f\u0069\u0064\u0020\u006d\u0061\u0069\u006e\u0028\u0053\u0074\u0072\u0069\u006e\u0067\u005b\u005d\u0020\u0061\u0029
\u007b
\u0053\u0079\u0073\u0074\u0065\u006d\u002e\u006f\u0075\u0074\u002e\u0070\u0072\u0069\u006e\u0074\u0028\u0022\u0048\u0031\u0022\u0029\u003b
\u007d
\u007d

如果通过native2ascii -reverse是:

public class UNI
{
public static void main(String[] a)
{
System.out.print("H1");
}
}

昨天,我遇到了空格问题。今天它似乎运行了。 谁能告诉在什么情况下应该有问题?

【问题讨论】:

  • 能否详细说明“空格问题”?
  • 具体是什么问题?谁把代码写成一堆 Unicode 转义符?
  • 在任何情况下都不应该运行这样的程序。我知道确实如此,但这不是借口。
  • 昨天我写了同样的程序,但是直到我在程序的开头给了空格才编译。
  • 你有没有编译时收到的错误信息?很难根据“我昨天收到一条错误消息”来告诉你出了什么问题......

标签: java unicode bluej


【解决方案1】:

编译和运行您提供的代码(没有虚假的空格)显示没有问题:

$ cat UNI.java
\u0070\u0075\u0062\u006c\u0069\u0063\u0020\u0063\u006c\u0061\u0073\u0073\u0020\u0055\u004e\u0049
\u007b
\u0070\u0075\u0062\u006c\u0069\u0063\u0020\u0073\u0074\u0061\u0074\u0069\u0063\u0020\u0076\u006f\u0069\u0064\u0020\u006d\u0061\u0069\u006e\u0028\u0053\u0074\u0072\u0069\u006e\u0067\u005b\u005d\u0020\u0061\u0029
\u007b
\u0053\u0079\u0073\u0074\u0065\u006d\u002e\u006f\u0075\u0074\u002e\u0070\u0072\u0069\u006e\u0074\u0028\u0022\u0048\u0031\u0022\u0029\u003b
\u007d
\u007d

$ javac UNI.java

$ java UNI
H1

Java 在很大程度上忽略了空格,因此“在文件开头[添加] 空格”应该没有效果。无论您以前遇到什么问题,很可能是由于尝试使用以 Unicode 转义形式编写的源代码而造成的混乱。如果您坚持使用“真实”字符,您将更容易编写可编译的代码......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-13
    • 1970-01-01
    • 2020-11-24
    • 1970-01-01
    • 2015-12-02
    • 1970-01-01
    相关资源
    最近更新 更多