Reputation: 303
I'm trying to keep only closest paths, I made code count occurrence of slashes and I got the result:
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
I want by the end keep only paths which are near of each others, it must return something like this:
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
I start with this Java code:
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);
}
Would someone help me to achieve this result?
Upvotes: 0
Views: 38
Reputation: 574
You can try this to count:
String[] temp = line.split("/");
int count = temp.length;
Edited:
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;
}
Upvotes: 2
Reputation: 264
for(String str: list_input){
System.out.println(str.split("/").length);
}
Upvotes: 0