2016-03-22 174 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); 
}