加号在字符串中的作用是什么?

时间:2012-10-19 10:55:18

标签: java string

我想知道,两个陈述之间有什么区别,这些可能很简单

      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:

     } 

我得到了代码的输出没有错误,但对它的工作方式毫无疑问?这里发生了什么?

如果你拒绝投票,请告诉我原因。

1 个答案:

答案 0 :(得分:9)

您必须记住char仍然是数字类型。

+这里是一元加号,它没有......没有。 +xx具有相同的价值。

但是 +xint,而xchar。所以它在这种情况下的效果是println(int)被调用而不是println(char)有效地打印char的数值而不是它所代表的字符。

+xint的原因是Unary Operator +执行了一个所谓的Unary Numeric Promotion,它将数值“规范化”为类型intlongfloatdouble视情况而定。

该行的更容易理解的版本是

System.out.println((int) character);

对于与一元减号(-x)相关的语言,主要是,它返回其操作数的否定值。

有关详细信息,请参阅this page(在“一元运算符”下)。