Sting[][]をdouble[][]にfor文で型変換したいです。どうすれば良いでしょうか
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
public class Aip4 {
public static void main(String args[]) {
BufferedReader br = null;
String fn = "data.csv"; // 入力ファイル
// データの最大個数
final int mn = 10;
// データを格納する2次元配列
String data[][] = new String[mn][];
double data1[][] =new double[mn][];
double b[][] =new double[3][3];//クラスタの中心座標
int c=3;
try { File file = new File(fn); br = new BufferedReader(new FileReader(file)); // readLineで一行ずつ読み込む int index = 0; String line; while ((line = br.readLine()) != null) { // lineをカンマで分割し、配列dataに保持 data[index] = line.split(","); index++; } //string[][]dataをdouble[][]に型変換 for(int i=0;i<10;i++) { for(int j=0;j<3;j++) { data1[i][j]=Double.parseDouble(data[i][j]); System.out.println(data1[i][j]); } System.out.println(); } }catch (Exception e) { System.out.println(e.getMessage()); }
}
}
dataとdata1はどこから出てきたんですか?
修正しました
うまく回らないとは具体的にどういう意味ですか?
① コンパイルできない?
② 実行時にエラーを吐く?
③ data1に妥当なデータが入っていない?(この場合値の確認方法を記載して下さい。)
またご提示のコードの場合、そもそもdataには何の値も入っていませんが、質問者さんのお手元ではちゃんと値が入っているという認識で良いですか?
実行時にprintされないです
dataにはすでに値が入っていてdata1は初期化だけしてある状態です
printされないとはどういうことです?
もしかして [[D@e2d56bf みたいな文字列が出る感じですか?
何も出力されないです
実際のコードを見てみないと何とも言えないです。
たぶんループの条件をうっかり間違えているとかそういうのだと思いますが。
あるいはどこかで例外を握り潰しているか。
全体はこんな感じです
