【初心者】Java質問・相談スレ2【大歓迎】
■ このスレッドは過去ログ倉庫に格納されています
0563デフォルトの名無しさん
NGNGi+"" だけど、Javaは文字列連結演算子 ( + )、および
その他のオブジェクトから文字列への変換に対する特別なサポートを提供してくれてる
この文字列連結演算子は、記述こそ加算演算子と同じだけど、振る舞いは全く違う
文字列への変換は、オブジェクトによって定義された toString メソッドを使って実装されてる
よって、toStringでiを文字列に変換し、文字列""と連結してるわけ
// ちなみに連結はStringBufferクラスとそのappendメソッドで実装されてる
連結された文字列はStringになるので、>>554
>bw.write(i+""); ではwrite(String str)が使われた
ってこと
これで、 >>553 で
11: i=Integer.parseInt(j);
12: i++;
13: bw.write(i.toString()); // i.toString()でもi+""でも同じ
とすることで希望どおりの結果が得られたか分かったはず
// この用途だとwrite(int c)よりwrite(String str)の方が適してる
>変数の型の区別がついてないから、こんな質問してしまうのでしょうか?
文字を出力したいのに、数値を文字に変換しないで出力しようとしてるから、
変数の型の区別がついてないんじゃないかと思った。
文字列はクラスだけど、プリミティブ変数みたいにホイホイ使えるから
そのうち if (str == "hogehgoe") とかやっちゃいそうな気がする
// さすがにそれは無いか?でも結構そーゆーやつ多い
■ このスレッドは過去ログ倉庫に格納されています