2016-03-22 214 views
0

我想只保留最近的路徑lenght,我做了斜槓的代碼發生次數和我得到的結果是:比較路徑

html/body/div/header/div/div/a/span = 7 
html/body/div/div/div/div/div/div/div/div/div/h2 = 11 
html/body/div/div/div/table/tbody/tr/td/ul/li/a = 11 
html/body/div/div/div/table/tbody/tr/td/ul/li/a/h1 = 12 
html/body/div/div/div/div/table/tbody/tr/td/a/span = 11 
html/body/div/div/div/div/table/tbody/tr/td/a/span/h1 = 12 
html/body/div/div/div/div/table/tbody/tr/td/a/a/span/h1 = 13 

我想最終只保留其各自的路徑附近其他,它必須返回是這樣的:

html/body/div/div/div/div/div/div/div/div/div/h2 = 11 
html/body/div/div/div/table/tbody/tr/td/ul/li/a = 11 
html/body/div/div/div/table/tbody/tr/td/ul/li/a/h1 = 12 
html/body/div/div/div/div/table/tbody/tr/td/a/span = 11 
html/body/div/div/div/div/table/tbody/tr/td/a/span/h1 = 12 
html/body/div/div/div/div/table/tbody/tr/td/a/a/span/h1 = 13 

我開始這個java代碼:

ArrayList<String> list_input = new ArrayList(); 
     list_input.add(""); 

     list_input.add("html/body/div/header/div/div/a/span"); 
     list_input.add("html/body/div/div/div/div/div/div/div/div/div/h2"); 
     list_input.add("html/body/div/div/div/table/tbody/tr/td/ul/li/a"); 
     list_input.add("html/body/div/div/div/table/tbody/tr/td/ul/li/a/h1"); 
     list_input.add("html/body/div/div/div/div/table/tbody/tr/td/a/span"); 
     list_input.add("html/body/div/div/div/div/table/tbody/tr/td/a/span/h1"); 
     list_input.add("html/body/div/div/div/div/table/tbody/tr/td/a/a/span/h1"); 

     for (int i = 0; i < list_input.size(); i++) { 
      String line = (String) list_input.get(i); 

      int count_nodes = line.length() - line.replace("/", "").length(); 
      System.out.println(line + " = " + count_nodes); 

     } 

會someon e幫助我實現這個結果?

在此先感謝。

+0

哪些結果? (「它必須返回這樣的內容」並不是一個非常準確的描述),而且你現在的結果又如何呢?你認爲這個問題在哪裏? –

+0

直到現在我還是有問題,我只知道我怎樣才能得到最近的路徑 – kivok94

+0

定義「最近的路徑」。在您認爲距離最近的路徑列表中沒有任何規則,只是它們的長度在彼此之內。 –

回答

2

你可以試試這個數:

String[] temp = line.split("/"); 
int count = temp.length; 

編輯:

String line = (String)list_input.get(0); 
int min = line.split("/").length; 

for (int i = 1; i < list_input.size(); i++) { 
    String line = (String)list_input.get(i); 

    int count = line.split("/").length; 
    if (count < min) 
     min = count; 
} 
+0

但是,這個問題是比較每條路徑的長度與其他路徑並只保存那些 。 – kivok94

+0

編輯,看看。 –

+1

如果你已經有了一些路徑,可以分析「路徑」和arraylist中的第一個區別,然後比較差異 –

0
for(String str: list_input){ 
      System.out.println(str.split("/").length); 
}