gpt4 book ai didi

java - 使用不带数组的扫描仪从文本文件中删除重复数据 (Java)

转载 作者:行者123 更新时间:2023-12-02 09:29:42 25 4
gpt4 key购买 nike

我正在尝试读取一个文本文件,其中包含不同行上已按从最小到最大排序的整数。所述整数必须传输到另一个文本文件,但不能有任何重复,并且不能使用任何类型的数组、数组列表、映射、集合或任何其他类型的数据结构。

目前,我尝试使用扫描仪从第一个文本文件中读取数字,并使用 while 循环检查下一个数字是否相似。唯一的问题是循环也会获取其中的下一个整数,因此该算法仅在所有数字都重复时才有效。如果有人至少能指出我正确的方向,这会让我很高兴,提前致谢!

示例文本文件一(所有整数都在新行上):5 5 5 5 5 8 8 9 9 9 9 10 10 11

我的输出:5 8 9 10预期输出:5 8 9 10 11

public static void deduplicateFiles(String inputFileName,String outputFileName){
Scanner scan = null;
try{
scan = new Scanner(new FileInputStream(inputFileName) );
}catch(FileNotFoundException e){
System.out.println(e.getMessage() );
}
PrintWriter writer = null;
try{
writer = new PrintWriter(outputFileName);
}catch(FileNotFoundException e){
System.out.println(e.getMessage());
}
while(true){
int firstInt = scan.nextInt();
scan.nextLine();
//if(scan.nextInt() != firstInt)
int counter = 1;

while(scan.nextInt() == firstInt && scan.hasNext() != false){
System.out.println("counter" +counter);
counter++;
scan.nextLine();
}
System.out.println("The integers:" + firstInt);
writer.println(firstInt);
if(scan.hasNext() == false)
break;
}
writer.flush();
writer.close();
}

最佳答案

首先从文件中读取所有整数。将它们添加到集合中,然后从集合中写入文件。您可以使用 LinkedHashSet 来保持顺序。

关于java - 使用不带数组的扫描仪从文本文件中删除重复数据 (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58087265/

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