使用Unicode作为Java变量?

时间:2015-04-05 03:49:34

标签: java unicode utf-8 javac

我想知道是否可以在java中使用unicode作为变量名。例如:

public static double δ = 1.001;

每当我在java中做这样的事情时,我都会收到错误。反正有没有让δ可以用作java中的变量?

如果没有,我可以使用其他替代方案吗?

3 个答案:

答案 0 :(得分:3)

根据doc可能

  

变量名称区分大小写。变量的名称可以是任何合法标识符 - 无限长度的 Unicode字母和数字序列,以字母开头,美元符号“$”或下划线字符“”。但是,惯例是始终使用字母开头,而不是“$”或“”。此外,按照惯例,美元符号字符根本不会被使用。

<小时/> **如果它不工作,使用-encoding选项编译文件(通常没有-encoding它应该工作。如果没有这个,这不是必要的步骤首先检查)**

  

-encoding:编码   设置源文件编码名称,例如EUC-JP和UTF-8 ..如果未指定-encoding,则使用平台默认转换器。

javac -encoding UTF-8 HelloWorld.java

如何配置您的IDE:

我正在使用Intellij的想法:

添加其他命令行参数: -encoding UTF-8

enter image description here

这很有效!

enter image description here

答案 1 :(得分:2)

这是一个合法的名称。来自JLS 3.8标识符 - 字母和数字(用于标识符)可以从整个Unicode字符集中提取,该字符集支持当今世界中使用的大多数书写脚本,包括中文,日文和韩文的大型集。这允许程序员在他们的程序中使用以其本地语言编写的标识符。

答案 2 :(得分:0)

你可以使用unicode本身(不仅仅是一个角色)作为变量,如下面提到的截图。

enter image description here

  1. 正如您可以看到带有\ u0020(空格字符)的Sysout,没有错误。
  2. 下面我们用unicode创建一个字符串变量(P),它甚至可以打印&#34;嗨&#34;在控制台中,如果你通过删除最后一个Sysout来运行程序。
  3. 尝试打印unicode chatacter(Q - \ u0051)时未定义编译错误。
  4. 看起来很奇怪,但是像Evgeniy Dorofeev所提到的那样java支持它。