2012-02-07 108 views
0

我想刪除包含「?」(空值)的僱員的記錄。僱員數據庫看起來像刪除整個陣列

34,45,56,...,34
45,67,34,56,56
23,45,67,...,90

用下面的代碼代替我整個包含「?」的行與「0」。

public void doRemoval(String filename) 
{ 
     contents = new Vector(); 
     inputstream = new FileInputStream(filename); 
     br = new BufferedReader(new InputStreamReader(inputstream)); 
     String string = ""; 
     while((string = br.readLine())!= null) 
     { 
      String[] split = string.split(","); 
      Vector vector = new Vector(); 
      for(int i=0; i<split.length; i++) 
       vector.add(split[i].trim()); 
      if(vector.contains("?")) 
      { 
       for(int i=0; i<split.length; i++) 
        split[i] = "0"; 
      } 
      contents.add(split); 
     } 

輸出
0,0,0,0,0
45,67,34,56,56
0,0,0,0,0

現在我想刪除包含「0」的行。我不知道如何去做。誰能幫我。我想要做的就是刪除包含空值的行。有沒有其他的方式來執行它?

回答

1

這樣寫:

public void doRemoval(String filename) 
{ 
    contents = new Vector(); 
    inputstream = new FileInputStream(filename); 
    br = new BufferedReader(new InputStreamReader(inputstream)); 
    String string = ""; 
    while((string = br.readLine())!= null) 
    { 
     String[] split = string.split(","); 
     Vector vector = new Vector(); 
     for(int i=0; i<split.length; i++) 
      vector.add(split[i].trim()); 
     if(!vector.contains("?")) 
     { 
      contents.add(split); 
     } 

    } 

你不刪除它們,你只是不添加它們。

+0

太感謝你了。有效。 – darsha 2012-02-07 07:22:28

+0

,你能告訴我可以用該特定列的平均值替換空值嗎? – darsha 2012-02-07 07:26:00

+0

是的,這也不難。試着想一下。提示:首先迭代一次計算平均值(實際上非​​'?'值及其總和值)的數值,然後第二次迭代以替換'?' - s。當所有值都是'?'時,請注意情況。 – 2012-02-07 07:32:12

1

如果您不需要有全零的中間步驟,您可以:

if(!vector.contains("?")) { 
    contents.add(split); 
} 

,而不是與塊:

if(vector.contains("?")) 
{ 
    for(int i=0; i<split.length; i++) 
    split[i] = "0"; 
} 
contents.add(split);