小编Lac*_*say的帖子

Java和char之间的Java隐式转换

在处理以下场景时,我正在寻找Java的行为解释.据我所知,ASCII表的排列方式使得字符的值5大于5个位置0.这允许在char上进行计算而不转换为int,如第一个例子中所示.

我不明白为什么Java似乎不一致地处理何时从ASCII表提供值以及何时对字符进行计算,就好像它们是整数一样.

int x = '5' - '0';
Run Code Online (Sandbox Code Playgroud)

产量 x = 5;

int x = '5'
Run Code Online (Sandbox Code Playgroud)

产量 x = 53;

现在举一些例子,这引起了混乱.

int x = '0' + 1 - '5'
Run Code Online (Sandbox Code Playgroud)

产量 x = -4

int y = '5' - '0' + '1'
Run Code Online (Sandbox Code Playgroud)

产量 54

int y = '5' - 0 + '1'
Run Code Online (Sandbox Code Playgroud)

产量 102

Java似乎正在进行隐式类型转换,但是Java如何推断它应该使用哪个int/char表示?

java ascii casting type-conversion

5
推荐指数
1
解决办法
146
查看次数

为什么在返回值之前将字符串与空值连接起来?

我已经在一些Java库中看到,当返回一个字符串时,该值将与一个空值连接在一起。

例如 package java.io;

/**
 * The system-dependent default name-separator character, represented as a
 * string for convenience.  This string contains a single character, namely
 * <code>{@link #separatorChar}</code>.
 */
public static final String separator = "" + separatorChar;
Run Code Online (Sandbox Code Playgroud)

为什么不只返回spacerChar?

字符串是返回值的首选数据类型吗?不管怎么说,为什么这只是一个字符,为什么要使用字符串数据类型?

进行此转换是否会对性能产生影响?

java string-concatenation

4
推荐指数
1
解决办法
90
查看次数