处理不显示数据值也不读取城市?
Processing not showing data values and not reading cities?
您好,我在处理不输出列数据的地方时遇到问题?它正在读取行,但在每一行中它输出为 0 除了 "Number" 即使其中有数据?
我也不知道如何分隔城市,因为它肯定不是一个 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]);
}
}
您的代码中有许多问题需要解决:
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]
但您已经以相反的方式完成了。此外,您应该使用 header.length
.
而不是使用像 5
这样的硬编码值
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));
}
}
如有任何问题,请随时发表评论 doubt/issue。
您好,我在处理不输出列数据的地方时遇到问题?它正在读取行,但在每一行中它输出为 0 除了 "Number" 即使其中有数据?
我也不知道如何分隔城市,因为它肯定不是一个 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]);
}
}
您的代码中有许多问题需要解决:
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]
但您已经以相反的方式完成了。此外,您应该使用 header.length
.
5
这样的硬编码值
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));
}
}
如有任何问题,请随时发表评论 doubt/issue。