ChickenMan:
こんにちは、イムは、その私の列のデータを出力しないところの処理に問題がありますか?これは、行を読んでいるが、各列の内側には、その中のデータがあるにもかかわらず、「数」を除いて0として出力しますか?
また、私は、それは間違いなくint型の値ではないとして、都市を区切る方法を知りませんか?
私のコード:
int[][] data;
void setup() {
size(800, 600);
String[] lines = loadStrings("datasheet.csv");
println("there are " + lines.length + " lines");
String[] header = split(lines[0], ',');
println(header[0] + " " + header[1] + " " + header[2] + " " + header[3] + " " + header[4]);
data = new int[5][lines.length-1];
for (int i = 1 ; i < lines.length; i++) {
String[] dataStr = split(lines[i], ',');
data[0][i-1] = int (dataStr[0]);
data[1][i-1] = int (dataStr[1]);
data[2][i-1] = int (dataStr[2]);
data[3][i-1] = int (dataStr[3]);
data[4][i-1] = int (dataStr[4]);
println (data[0][i-1] + " " + data[1][i-1] + " " + data [2][i-1] + " " + data [3][i-1] + " " +
data
[4][i-1]);
}
}
アービンド・クマールのAvinash:
あなたが対処する必要があなたのコードには多くの問題があります。
A.代わりに次のようにヘッダを印刷します。
println(header[0] + " " + header[1] + " " + header[2] + " " + header[3] + " " + header[4]);
次のエレガントな方法でそれを行うことができます:
println(String.join(" ", header));
B.あなたが宣言する必要data
としてnew int[no-of-rows][no-of-columns]
いますが、それを他の方法でラウンドを行っています。また、代わりのようにハードコードされた値を使用しての5
、あなたが使用している必要がありますheader.length
。
C.印刷data
も使用エレガントに行うことができるString::join
印刷するための上記で行うのと同じようにheader
。
下記のこれらの点を取り入れたコードは次のとおりです。
String[][] data;
void setup() {
size(800, 600);
String[] lines = loadStrings("datasheet.csv");
println("there are " + lines.length + " lines");
String[] header = split(lines[0], ',');
println(String.join(" ", header));
data = new String[lines.length -1][header.length];
for (int i = 1 ; i < lines.length; i++) {
String[] dataStr = split(lines[i], ',');
data[i-1] = dataStr;
println(String.join(" ", dataStr));
}
}
何の疑いも/問題の場合にはコメントをお気軽に。