2015-05-26 90 views
0

我想從arduino中讀取四個循環測量的傳感器,並希望通過處理顯示這些值。將字符串處理爲陣列

我的問題是,當我想將我的數據字符串轉換爲數組時,出現錯誤消息:「找不到名爲'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; 
      } 
     } 
    } 
} 

回答

0

沒有名爲Array的類(好吧,有,但它不是你想要的)。這不是你如何聲明一個數組。

您使用所需的數組類型聲明一個數組變量,然後使用方括號[]。例如,你聲明這個變量:

String MessdatenSplit; 

此聲明MessdatenSplit變量作爲字符串,而不是字符串數組。相反,你可能希望這樣的:

String[] MessdatenSplit; 

然後,當你初始化MessdatenSplit變量,可以再次使用陣列的類型是,你也應該用方括號,把裏面的數組的長度方括號。在這裏,我們做正確:

Natrium = new String[350]; 

(雖然,你錯過了這個變量的聲明,所以你需要補充一點,在這個真正的工作)

以上行創建一個包含350個索引的String數組。但在這下一行,而在其他一些地方,你是不正確初始化它:

MessdatenSplit = new Array[1400]; 

沒有Array關鍵字。您需要使用陣列的類型是,這樣的:

MessdatenSplit = new String[1400]; 

注意,你也可以做變量聲明和初始化在一行:

String[] MessdatenSplit = new String[1400]; 

您可能要重新開始並聲明並初始化一個數組變量,然後運行它以確保它可以正常工作。然後添加下一個數組,然後運行它以查看它是否有效。您遇到麻煩是因爲您試圖一次編寫並運行整個草圖,而實際上您需要測試更小的步驟。另外,您應該嘗試遵循標準的命名約定:變量和函數應該以小寫字母開頭。