剛剛接觸java! 我想刪除一個文件中的重複行,但我需要保持線,更數的大寫字母如何從文本文件中刪除重複的行
,可以使用哪些功能,如果文本文件包含下列單詞來實現這一
輸入
汽車
車
的BU
總線
自行車
預期輸出
車
的BU
自行車
剛剛接觸java! 我想刪除一個文件中的重複行,但我需要保持線,更數的大寫字母如何從文本文件中刪除重複的行
,可以使用哪些功能,如果文本文件包含下列單詞來實現這一
輸入
汽車
車
的BU
總線
自行車
預期輸出
車
的BU
自行車
試試這個。
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]
Pefect回答正在尋找什麼 – Gpn008
你可以先閱讀文本文件和文本的每一行存儲串
的列表,然後你可以使用
str1.equalsIgnoreCase(STR2);
來比較字符串
如果返回true,就忽略這個文本
「_,但我需要保留更多數量的大寫字母的行_」... –
但我需要保留更多數量的大寫字母(您從來沒有在原始問題中提及此行)的行數是什麼意思這就是我告訴你根據你的問題嘗試,如果你不明白英語,那麼你的問題是正確的,然後告訴我() –
1)我沒有提出這個問題 - 我不知道你爲什麼要像我一樣對我說話。 2)原始問題包含此確切的行 - 請參閱http://stackoverflow.com/revisions/39639481/1 –
[在使用Java文件刪除重複的行]的可能的複製(http://stackoverflow.com/questions/996041/deleting -duplicate-in-a-file-using-java) – DimaSan
@DimaSan這不僅僅是在你的鏈接中回答 - 「_,但我需要保留更多數量的大寫字母_」。 –