java - Java 中的字符运算

标签 java math char

我在玩的时候遇到了一些我觉得很奇怪的东西:

以下不是有效的 Java 代码:

char x = 'A';
x = x + 1;    //possible loss of precision

因为其中一个操作数是整数,所以另一个操作数被转换为整数。结果无法分配给字符变量... while

char x = 'A';
x += 1;

是有效的,因为生成的整数会自动转换为字符。

到目前为止一切顺利。这对我来说似乎很清楚,但是......为什么以下有效的 Java 代码?

char x;
x = 'A' + 1;

最佳答案

因为

'A' + 1

是常量表达式。在编译时已知结果将适合 char

鉴于

'A' + 787282;

将不适合 char,因此会导致编译错误。

关于java - Java 中的字符运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26077771/

相关文章:

java - 如何从 Java Swing 应用程序运行 OSX 字符查看器

haskell - 在 Haskell 中制作除数列表

java - 使用 Ascii 字符代替 Char

python - Pandas 对负整数和正整数、多列进行排名

java - 如何检查 char 数组是否有空单元格以便我可以在其中打印 0?

c - 一个计算字符串中有多少个不同字符的函数

java - 安卓/Java : Fragment instantiating causes memory leak?

java - 在 org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler_Decorated@397740e0 上找不到属性 'compile'

java - 这段代码中的 init() 方法有什么用?

python - 将 PCA 应用于测试数据