我可以使用 Unicode 作为 Java 变量吗?

问题描述 投票:0回答:3

Java中可以使用Unicode作为变量名吗?例如:

public static double δ = 1.001;

每当我在 Java 中执行类似操作时,都会出现错误。有没有办法让δ可以在Java中用作变量?

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

java unicode utf-8 javac
3个回答
3
投票

根据doc这是可能的

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


**如果它不工作,请使用 -encoding 选项编译文件(通常没有 -encoding 它应该工作。如果没有这个,这不是必要的步骤)**

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

javac -encoding UTF-8 HelloWorld.java

如何配置您的IDE:

我正在使用Intellij idea:

添加额外的命令行参数:

-encoding UTF-8

enter image description here

成功了!

enter image description here


2
投票

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


0
投票

您可以使用 unicode 本身(不仅仅是字符)作为变量,如下面提到的屏幕截图。

  1. 正如您所见,Sysout 中带有 \u0020(空格字符),没有错误。
  2. 下面我们创建一个带有unicode的字符串变量(P),如果你通过删除最后一个Sysout来运行程序,它甚至可以在控制台中打印“Hi”。
  3. 尝试打印未定义的 unicode 字符 (Q -- \u0051) 时会出现编译错误。

它看起来很奇怪,但正如 Evgeniy Dorofeev 提到的那样,java 支持它。

© www.soinside.com 2019 - 2024. All rights reserved.