Java 比较路径长度

Java 比较路径长度,java,path,Java,Path,我试图只保留最近的路径,我对斜杠的出现进行了代码计数,结果是: 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/d

我试图只保留最近的路径,我对斜杠的出现进行了代码计数,结果是:

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);

        }
ArrayList list_input=new ArrayList();
列表输入。添加(“”);
列表输入添加(“html/body/div/header/div/div/a/span”);
列表输入添加(“html/body/div/div/div/div/div/div/div/div/div/div/div/h2”);
列表输入添加(“html/body/div/div/div/table/tbody/tr/td/ul/li/a”);
列表输入添加(“html/body/div/div/div/table/tbody/tr/td/ul/li/a/h1”);
列表输入添加(“html/body/div/div/div/table/tbody/tr/td/a/span”);
列表输入添加(“html/body/div/div/div/table/tbody/tr/td/a/span/h1”);
列表输入添加(“html/body/div/div/div/table/tbody/tr/td/a/a/span/h1”);
对于(int i=0;i

有人能帮我达到这个结果吗

您可以尝试以下方法进行计数:

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;
}
stringline=(String)list\u input.get(0);
int min=行分割(“/”)长度;
对于(int i=1;i
您可以尝试以下方法进行计数:

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;
}
stringline=(String)list\u input.get(0);
int min=行分割(“/”)长度;
对于(int i=1;i
哪个结果?(“它必须返回类似的内容”不是一个非常准确的描述)您当前的结果与此有何不同?你认为问题出在哪里?到目前为止我还没有问题,我只想知道怎样才能得到最近的路径。在你认为最接近的路径列表中没有任何规则,除了它们的长度在2以内。我认为它应该计算差异,然后只得到小于0或1或2的结果,然后删除路径,这到底是什么结果?(“它必须返回类似的内容”不是一个非常准确的描述)您当前的结果与此有何不同?你认为问题出在哪里?到目前为止我还没有问题,我只想知道怎样才能得到最近的路径。在你认为最接近的路径列表中没有任何规则,除了它们的长度在2以内。我认为它应该计算差异,然后只得到小于0或1或2的结果,然后删除FARI所做的路径,但是,这个问题,正在将每个路径的长度与其他路径进行比较,并仅保存最近的路径。已编辑,请查看。如果您已经有一些路径,请将“路径”与arraylist中的第一个路径之间的差异作为最小值,然后比较差异确定感谢gregory,我将修改您的代码以适应我的情况:)我做了,但这就是问题所在,正在将每个路径的长度与其他路径进行比较,并仅保存最近的路径。已编辑,请查看。如果您已经有一些路径,请将“路径”与arraylist中的第一个路径之间的差异作为最小值,然后比较差异确定感谢gregory,我将修改您的代码以适应我的情况:)