Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从文本文件中删除重复行_Java - Fatal编程技术网

Java 如何从文本文件中删除重复行

Java 如何从文本文件中删除重复行,java,Java,我是java新手! 我想从文件中删除重复的行,但我需要保留更多大写字母的行 我可以使用哪个函数来实现这一点 如果文本文件包含以下单词 输入 汽车 汽车 公共汽车 公共汽车 自行车 预期产量 汽车 公共汽车 bike您可以先读取文本文件,然后将每行文本存储在字符串列表中 然后你可以使用 str1.equalsIgnoreCasestr2 比较你的字符串 如果返回true,请忽略该文本,然后尝试此操作 static class Str { final String origin;

我是java新手!
我想从文件中删除重复的行,但我需要保留更多大写字母的行

我可以使用哪个函数来实现这一点

如果文本文件包含以下单词

输入

汽车

汽车

公共汽车

公共汽车

自行车

预期产量

汽车

公共汽车


bike

您可以先读取文本文件,然后将每行文本存储在字符串列表中

然后你可以使用

str1.equalsIgnoreCasestr2

比较你的字符串

如果返回true,请忽略该文本,然后尝试此操作

static class Str {

    final String origin;
    final int uppers;

    Str(String origin) {
        this.origin = origin;
        this.uppers = (int)origin.chars()
            .filter(Character::isUpperCase)
            .count();
    }
}

public static List<String> uniq(String file) throws IOException {
    Path path = Paths.get(file);
    List<String> lines = Files.readAllLines(path);
    Map<String, Str> map = new LinkedHashMap<>();
    for (String e : lines) {
        Str n = new Str(e);
        map.compute(e.toLowerCase(),
            (k, v) -> v == null || n.uppers > v.uppers ? n : v);
    }
    return map.values().stream()
        .map(s -> s.origin)
        .collect(Collectors.toList());
}
结果:

[CaR, BUs, bike]

@DimaSan的可能副本这在你的链接中得到了更多的回答,但我需要保留更多大写字母的行数。,但是我需要保留更多大写字母的行…但是我需要保留更多大写字母的行你从来没有在原始问题中提到这行,这是什么意思?我告诉你的是什么?根据你的问题尝试如果你不懂英语,那么告诉我我不是这篇文章的作者问题-我不知道你为什么这样称呼我。2原始问题包含了这一行-请看我想要的完整答案
[CaR, BUs, bike]