JAvaトラップ3最後の笑い声
832 ワード
次のプログラムで印刷した内容は?
Javaコード
このプログラムはHaHaを印刷しません.Ha 169を印刷します.
1番目の出力については、1つの文字列接続を実行するHaが呼び出され、2番目の呼び出しについては、「H」および「a」が文字型文字列定数であるため、+オペレータは文字列接続ではなく加算を実行する.
では、どのように文字を接続すればいいですか?クラスライブラリを使用できます.たとえば、文字列バッファを使用できます.
Javaコード
これにより、正常に動作しますが、醜いため、少なくとも1つのオペランドが文字列タイプであることを確認することで、加算ではなく+オペレータに文字列接続操作を強制することができます.慣用は空の文字列(")です.
文字列接続は、+オペレータのオペランドの少なくとも1つがStringタイプである場合にのみ実行されます.
Javaコード
public class LastLaugh{
public static void main(String[] args){
System.out.println("H"+"a");
System.out.println('H'+'a');
}
}
このプログラムはHaHaを印刷しません.Ha 169を印刷します.
1番目の出力については、1つの文字列接続を実行するHaが呼び出され、2番目の呼び出しについては、「H」および「a」が文字型文字列定数であるため、+オペレータは文字列接続ではなく加算を実行する.
では、どのように文字を接続すればいいですか?クラスライブラリを使用できます.たとえば、文字列バッファを使用できます.
Javaコード
StringBuffer sb = new StringBuffer();
sb.append('H');
sb.append('a');
System.out.println(sb);
これにより、正常に動作しますが、醜いため、少なくとも1つのオペランドが文字列タイプであることを確認することで、加算ではなく+オペレータに文字列接続操作を強制することができます.慣用は空の文字列(")です.
文字列接続は、+オペレータのオペランドの少なくとも1つがStringタイプである場合にのみ実行されます.