2016-03-22 4 views
0

のな長さを比較すると、私はスラッシュのコード数の発生を作って、私は結果を得た:年末までに私が欲しいは、私が唯一の最も近いパスを維持しようとしているパス

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 

は、それぞれの近くにあるパスのみを保ちます私は、このJavaコードで起動

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 

::他の人は、それがこのような何かを返す必要があります

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以内にあることを除いて、あなたが最も近いと考えるパスのリストには規則的なものはありません。 –

答えて

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

すでにパスがある場合は、 "path"とarraylistの最初のものとの差分をとり、その差を比較してください。 –

0
for(String str: list_input){ 
      System.out.println(str.split("/").length); 
} 
関連する問題