Java というプログラミング言語には、次のコード行があります。
char u = 'U';
System.out.print(u + 'X');
このステートメントは、次のような出力になります。
173
それ以外の
UX
何か不足していますか?「UX」が出力されないのはなぜですか? ありがとうございました。
Java というプログラミング言語には、次のコード行があります。
char u = 'U';
System.out.print(u + 'X');
このステートメントは、次のような出力になります。
173
それ以外の
UX
何か不足していますか?「UX」が出力されないのはなぜですか? ありがとうございました。
Java として知られるこの言語では、2 つの char、short、または bytes を追加した結果はintになります。
したがって、U
(85) の整数値がX
(88)の整数値に加算され、 173
(85+88) の整数値が得られます。
修正するには:
おそらく文字列を作成したいと思うでしょうu
。文字列とcharは、文字列と文字列のように、文字列になります。
String u = "U"; // u is a string
System.out.print(u + 'X'); // string plus a char is a string
文字の追加を実行しているためです。Java では、文字を追加すると、最初に整数に変換されます。あなたの場合、U の ASCII コードは 85 で、X のコードは 88 です。
合計を出力すると、173 になります。
文字を連結したい場合は、たとえば次のようにします。
System.out.print("" + u + 'X');
これは+
char の追加ではなく、文字列の連結になります (最初のパラメーター""
が文字列であるため)。
その文字から String を作成することもできます。
char[] characters = {u, 'X'};
System.out.print(new String(characters));
文字の 1 つを文字列に変換する別の方法:
char u = 'U';
System.out.print(Character.toString(u) + 'X');
この方法は、変数がchar
正当な理由で型であり、変数として簡単に再宣言できない場合に役立ちますString
。
String u = "U";
System.out.print(u + "X");
char
type use String
class またはStringBuilder
classの代わりに
その「Java と呼ばれる言語」のビットは私を面白がらせました。
"java concatenate" を簡単に検索すると (質問があるたびに検索することをお勧めします)、ほとんどの優れた Java プログラマーは+
連結に使用することを嫌うことがわかりました。コードのように、文字列連結が必要なときに数値的に使用されていなくても、低速です。
append
StringBuffer オブジェクトを作成し、連結する文字列ごとにそのメソッドを呼び出す方がはるかに優れているようです。ここを参照してください: http://www.ibm.com/developerworks/websphere/library/bestpractices/string_concatenation.html