gpt4 book ai didi

java - 设置重复项 java - 从文件导入 - java

转载 作者:太空宇宙 更新时间:2023-11-04 10:21:17 25 4
gpt4 key购买 nike

我有一个小项目。

该项目将 txt 文件导入到 String(编码类似于 CSV - 包含分号 =“;”)。

在接下来的步骤中,字符串将更改为 ArrayList。

然后,使用谓词删除我不感兴趣的元素。

最后,我替换了 TreeSet 上的 ArrayList 以删除重复项。不幸的是,这里有一个问题,因为重复发生了......

我在Notepadd++中检查了ANSI上的编码是否有不必要的字符。

不幸的是,一切看起来都很好,但重复项仍然存在。

已上传输入文件 - https://drive.google.com/open?id=1OqIKUTvMwK3FPzNvutLu-GYpvocUsSgu

有什么想法吗?

public class OpenSCV {
private static final String SAMPLE_CSV_FILE_PATH = "/Downloads/all.txt";

public static void main(String[] args) throws IOException {

File file = new File(SAMPLE_CSV_FILE_PATH);
String str = FileUtils.readFileToString(file, "utf-8");
str = str.trim();
String str2 = str.replace("\n", ";").replace("\"", "" ).replace("\n\n",";").replace("\\*www.*\\","")
.replace("\u0000","").replace(",",";").replace(" ","").replaceAll(";{2,}",";");

List<String> lista1 = new ArrayList<>(Arrays.asList((str2.split(";"))));

Predicate<String> predicate = s -> !(s.contains("@"));

Set<String> removeDuplicates = new TreeSet<>(lista1);

removeDuplicates.removeIf(predicate);

String fileName2 = "/Downloads/allMails.txt";
try ( BufferedWriter bw =
new BufferedWriter (new FileWriter (fileName2)) )
{
for (String line : removeDuplicates) {
bw.write (line + "\n");
}
bw.close ();
} catch (IOException e) {
e.printStackTrace ();
}
}
}

最佳答案

在执行 str.replace 之前,您可以尝试 str.trim 删除任何空格或不需要的和看不见的字符。

str = str.trim()

关于java - 设置重复项 java - 从文件导入 - java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51137142/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com