2014-02-24 65 views
0

我會在底部列出我的代碼,但這裏是交易。 我有一個處理方法的解析器類。該方法從網頁中提取數據。我想要抓取每一行,將字符串拆分成一個數組,然後將這些值添加到一個對象中,然後將該對象添加到ArrayList中。隨着循環的迭代,來自每一行的新值將通過該對象添加到ArrayList中。此代碼中的培訓相關方法是公共ArrayList的過程()將數據傳遞給對象

我得到以下編譯錯誤:

構造飛行(字符串)是令牌「[」未定義 語法錯誤,表達預計在此之後令牌

在ArrayList類型的方法Add(字符串)不適用於參數(飛行)

我在做什麼錯在這裏,以及如何,如果解決?

public class HtmlParser { 

public String url; 
public String airline; 
public static String lastFlight; 
static ArrayList<String> capture = new ArrayList<String>(); 



public HtmlParser(Properties config) throws IOException{ 

    url = config.getProperty("url"); 
    airline = config.getProperty("airline"); 

    print("Fetching.........%s" , url); 

} 

public ArrayList<String> process() throws IOException{ 
    Document doc = Jsoup.connect(url).get(); 

    Elements tableRow = doc.getElementsByTag("tr"); 

    for(Element tr : tableRow){ 
     if(tr.text().contains(airline)){ 
      String delims = "[ ]+"; 
      String singleRowArray[] = tr.text().split(delims); 
      Flight f = new Flight(singleRowArray[]); 
      capture.add(f); 
     } 
    } 
    return capture; 
} 

這是我的飛行班。

public class Flight { 

public Flight(String singleRowArray[]) { 
    String origin = singleRowArray[0]; 
    String airline1 = singleRowArray[1]; 
    String airline2 = singleRowArray[2]; 
    String flightNo = singleRowArray[3]; 
    String date = singleRowArray[4]; 
    String ArrTime = singleRowArray[5]; 
    String status = singleRowArray[6]; 

} 

}

+0

這裏最重要的答案在哪裏去了? –

回答

0

「的構造飛行(字符串)是令牌未定義語法錯誤‘[’,表達預期這個令牌之後」

嘗試切換括號的類型,而不是變量:String[] singleRowArray

「在ArrayList類型的方法Add(字符串)不適用於參數(飛行)」

你必須要輸入Flight類型的對象List<String>,所以你應該改變爲L ist類型爲List<Flight>

0
static ArrayList<String> capture = new ArrayList<String>(); 

不能添加在捕獲列表飛行類對象只能包含字符串類型的元素。

 Flight f = new Flight(singleRowArray[]); 
    capture.add(f); // Issue 
-----------------^