3

私は知りたいのですが、2つのステートメントの違いは何ですか、これらは単純かもしれません

      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:

     } 

私はコードの出力をエラーなしで取得しましたが、それがどのように機能するかについては少し疑問がありますか?ここでは何が起きるのですか?

反対票を投じる場合は、理由を教えてください。

4

1 に答える 1

9

charそれはまだ数値タイプであることを覚えておく必要があります。

ここ+に単項プラスがありますが、これは...何もしません。+xと同じ値xです。

しかし 、あなたの場合+xintしばらく時間xがかかります。charしたがって、この場合の効果は、それによって表される文字の代わりにyourの数値println(int)を効果的に出力するのではなく、と呼ばれることです。println(char)char

理由+xint単項演算子+が、数値をタイプ、、、および必要に応じて「正規化」する、いわゆる単項数値昇格を実行するためです。intlongfloatdouble

その行のより理解しやすいバージョンは

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

オペランドの否定値を返す単項マイナス()に関して、言語が対称であることがに存在します。-x

詳細については、このページ(「単項演算子」の下)を参照してください。

于 2012-10-19T10:57:47.143 に答える