です。以下の例を見てみましょう:
private static void printMessage(int k) {
System.out.println("number" + '=' + k);
}
出力:number=5
を今、あなたは最後の最初の番号とテキストを印刷するとします。私がやっているすべては、文字列連結の最初と最後のアイテムを交換されています
private static void printMessage2(int k) {
System.out.println(k + '=' + "number");
}
出力:66number
おっと! =
のint値が連結される代わりにk
に追加されました。 1つの解決策は=
をString
にすることです。別の解決策は、明示的にint
String
に変換することです:
private static void printMessage2Safe(int k) {
System.out.println(Integer.toString(k) + '=' + "number");
}
出力:5=number
「ああ、私はとにかく、ことを決してしないだろう」あなたが言います。 「正しい人なら、誰でも=
をもう1つのStringの一部にしているはずです。」しかし、あなたが基本的な電卓アプリの一部を実装していて、その式とその結果を出力したいのであればどうでしょうか?あなたが実際に慎重にしようとしているなら、StringBuilder.append()
を使って式の部分を連結すると思います。しかし、そうでない場合は、以下のdisplay
メソッドの最初の実装を記述しないことを願っています。
public class Calculator {
public static void main(String[] args) {
display(2, '+', 3, 5);
displaySafe(2, '+', 3, 5);
}
public static void display(int num1, char operator, int num2, int result) {
System.out.println(num1 + operator + num2 + '=' + result);
}
public static void displaySafe(int num1, char operator, int num2, int result) {
System.out.println(Integer.toString(num1) + operator + Integer.toString(num2) + "=" + result);
}
}
出力:
114
2+3=5
出典
2013-01-02 18:59:32
rob
2の間に有意差はありません。このチュートリアルでは、 'toString'が「カバーの下」と呼ばれていることを強調したかったかもしれませんが、日々のプログラミングではそれは単なる追加の混乱です。 –
私はすでに以前の回答を掲載しましたが、実際のケースではInteger.toString(int)やその他のセーフガードを使用しなければならない場合があることを指摘したいと思いました。演算子。注意しないと、 '+'演算子との文字列連結は意図しない結果を生むことがあります。 – rob