处理字符串到数组

时间:2015-05-26 12:12:29

标签: arrays string arduino processing sensor

我想从arduino中读取四个循环测量传感器,并希望使用Processing显示值。

我的问题是,我收到错误消息:"找不到名为' Array'的类或类型"在我的处理代码中,我想将我的数据字符串转换为数组。

有人知道如何解决它吗?

import processing.serial.*;

Serial myPort;
String Messdaten;
String MessdatenSplit;

void setup () {
  size(500, 500);
  println(Serial.list());
  myPort = new Serial(this, Serial.list()[0], 9600);
}

void draw(){
}

void serialEvent(Serial myPort){
    if (myPort.available() > 0){
        String Messdaten = myPort.readStringUntil(3000);
        if (Messdaten != null){
            trim(Messdaten);
            String MessdatenSplit[] = split(Messdaten,",");

            MessdatenSplit = new Array[1400];
            Natrium = new String[350];
            Kalium = new Array[350];
            Lithium = new Array[350];
            Kupfer = new Array[350];

            for (n=0; n<350; n++){
                Natrium[n] = 1+4*n;
            }
            for (k=1; k<350; k++){
                Kalium[k] = 1+4*k;
            }
            for (u=2; u<350; u++){
                Kupfer[u] = 1+4*u;
            }
            for (l=3; l<350; l++){
                Lithium[l] = 1+4*l;
            }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

没有名为Array的类(嗯,有,但它不是你想要的那个)。那不是你如何声明一个数组。

使用所需的数组类型声明数组变量,然后使用方括号[]。例如,您要声明此变量:

String MessdatenSplit;

这将MessdatenSplit变量声明为String,而不是字符串数组。相反,你可能想要这个:

String[] MessdatenSplit;

然后当你初始化MessdatenSplit变量时,你应该再次使用它的数组类型,你也应该使用方括号并将数组的长度放在那些方括号内。在这里你正确地做到了:

Natrium = new String[350];

(虽然,你错过了这个变量的声明,所以你需要添加它才能真正起作用。)

上面一行创建一个包含350个索引的String数组。但是在下一行,以及其他一些地方,你不正确地初始化它:

MessdatenSplit = new Array[1400];

没有Array个关键字。你需要使用它的数组类型,如下所示:

MessdatenSplit = new String[1400];

请注意,您也可以在一行中执行变量声明和初始化:

String[] MessdatenSplit = new String[1400];

您可能希望重新开始并声明并初始化单个数组变量,然后运行它以确保它有效。然后添加下一个数组,并运行它以查看它是否有效。您遇到了麻烦,因为您正在尝试一次编写并运行整个草图,而实际上您需要测试更小的步骤。此外,您应该尝试遵循标准命名约定:变量和函数应以小写字母开头。