是java的新手! 我想从文件中删除重复的行,但我需要保留更多大写字母的行
我可以用哪种功能来实现这个目标
如果文本文件包含以下单词
输入
汽车
CAR
总线
总线
自行车
预期输出
CAR
总线
自行车
答案 0 :(得分:-1)
试试这个。
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());
}
和
System.out.println(uniq("test.txt"));
结果:
[CaR, BUs, bike]
答案 1 :(得分:-2)
您可以先读取文本文件,然后将每行文本存储在字符串
列表中然后你可以使用
str1.equalsIgnoreCase(STR2);
比较你的字符串
如果返回true则忽略该文本