我想知道,两个陈述之间有什么区别,这些可能很简单
String ss="myname";
char[] charArray = ss.toCharArray();
for ( char character : charArray )
{
System.out.println( +character );//Statements are here what does plus refers here:
System.out.println( character ); //Statements are here:
}
我得到了代码的输出没有错误,但对它的工作方式毫无疑问?这里发生了什么?
如果你拒绝投票,请告诉我原因。
答案 0 :(得分:9)
您必须记住char
仍然是数字类型。
+
这里是一元加号,它没有......没有。 +x
与x
具有相同的价值。
但是 +x
是int
,而x
是char
。所以它在这种情况下的效果是println(int)
被调用而不是println(char)
有效地打印char
的数值而不是它所代表的字符。
+x
为int
的原因是Unary Operator +执行了一个所谓的Unary Numeric Promotion,它将数值“规范化”为类型int
,long
,float
和double
视情况而定。
该行的更容易理解的版本是
System.out.println((int) character);
对于与一元减号(-x
)相关的语言,主要是,它返回其操作数的否定值。
有关详细信息,请参阅this page(在“一元运算符”下)。