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

gks*_*gks 3 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:

     } 
Run Code Online (Sandbox Code Playgroud)

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

如果您拒绝投票,请告诉我原因.

Joa*_*uer 9

你必须记住它char仍然是一种数字类型.

+这里是一元加号,这确实什么都没有.+x具有相同的价值x.

不过 +x是一个int同时xchar你的情况.因此,在这种情况下它的效果println(int)是调用,而不是println(char)有效地打印您的数值char而不是由它表示的字符.

之所以+xint的是,元运算符+执行所谓的一元数值提升其"标准化"的种数值int,long,floatdouble适当的.

这行更容易理解的版本

System.out.println((int) character);
Run Code Online (Sandbox Code Playgroud)

主要存在于关于一元减号(-x)的对称语言,它返回其操作数的否定值.

有关详细信息,请参阅此页面(在"一元运算符"下).