Обработка не показывает значения данных и не читает города? - PullRequest
2 голосов
/ 29 марта 2020

Здравствуйте, у меня возникли проблемы с обработкой, где не выводятся данные моих столбцов? Он читает строки, но внутри каждой строки выводит его как 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]);

}
}

This is what it is outputting

enter image description here

1 Ответ

0 голосов
/ 29 марта 2020

В вашем коде есть много проблем, которые вам нужно решить:

A. Вместо печати заголовка следующим образом:

println(header[0] + " " + header[1] + " " + header[2] + " " + header[3] + " " + header[4]);

you может сделать это следующим элегантным способом:

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));
    }
}

Не стесняйтесь комментировать в случае любых сомнений / проблем .

...