- 締切済み
[Ljava.lang.Stringってなんですか
-1.824667,-1.759031,877.1089,3.06299 ,13.17086 … と12個のデータが並んでいるcsv形式のファイルを出力するため、String型で1440個の配列を準備し、その配列に何度も値を入れていくようにしたのですが全て、 [Ljava.lang.String;@ec4a87 という文字列になって出力されてきました。 12個から4個にしたら最初は正常に出力され、途中から最初の2個が上記のようになっていました。どうすれば解決できますか。できれば具体的に教えてください。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- UKY
- ベストアンサー率50% (604/1207)
Globe.fileNameChange って何? Globe.head って何? Globe.extractionData って何? 肝心なところに関する説明がありませんが…… extractionData と head という二つのローカル変数は初期化しただけで実際には使われていませんが、何か意味があるのですか? Globe.fileNameChange や Globe.head と名前が同じで紛らわしいですが、何か関係があるのでしょうか?
- UKY
- ベストアンサー率50% (604/1207)
配列の要素である文字列を出力すべきところを、誤って配列そのものを出力しているように思われます。 [Ljava.lang.String; とは java.lang.String オブジェクトの1次元配列を表すクラスのバイナリ名、ec4a87 とはその配列オブジェクトのハッシュコードです。 > できれば具体的に教えてください。 具体的にどんなプログラムを書いたのかわからないので、具体的にどこをどう直せばよいのかまでは私にも分かりません……
補足
ありがとうございました。保存に関するプログラムはこのようにしています。 String extractionData[]=new String[1440]; String head[]=new String[1441]; try{ BufferedWriter wc1 = new BufferedWriter(new FileWriter(Globe.fileNameChange,true)); for(i=0;i<1440;i++){ wc1.write(Globe.head[i]+Globe.extractionData[i]+"\n"); } wc1.close(); } catch (Exception e){ System.out.println("読み込みエラー: "+ e); System.exit(1); } どこを直せばよろしいのでしょうか。
補足
すみませんでした。 class Globe{ public static String fileNameChange; public static String head[]=new String[1441]; public static String extractionData[]=new String[1440]; } としていたのですが、入力する際に間違えて String extractionData[]=new String[1440]; String head[]=new String[1441]; としていました。 fileNameChangには保存先の絶対パス、headには日付と時刻を2004,11,2,18,34,という風な感じに入れています。そしてextractionDataにはデータを入れてます。