我试图只保留最近的路径,我对斜杠的出现进行了代码计数,得到了结果:
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);
}
有人可以帮助我实现这个结果吗?
最佳答案
你可以尝试这个来计数:
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;
}
关于java - 比较路径长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36148772/