我试图找到一种方法来对类似于以下内容的文本文件进行冒泡排序:
04/26/16世嘉3D经典集07/14/16蝙蝠侠:阿卡姆地狱06/24/16东京幻影系列#FE
基本上,我希望它们按发布日期排列,例如,在01/25/16发布的游戏在06/26/16发布之前,它会创建一个新的文件,如下所示:
04/26/16世嘉3D经典收藏06/24/16东京幻影系列#FE 07/14/16蝙蝠侠:阿卡姆地狱
我确信会涉及一个for循环,因为每一行都是具有交换方法的数组的一个元素,以及一个临时值以进行比较,以交换新顺序的顺序,但我想不出将新顺序写入新文件的方法。
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
public class Main{
public static void main (String[]args) throws IOException{
File file = new File("releasedates.txt");
String[]arr;
arr = input(file);
output(file,arr);
}
public static String[]input (File file) throws FileNotFoundException{
String[]arr = new String[3];
Scanner sc = new Scanner(file);
for(int i = 0; i < arr.length; i++){
arr[i] = sc.nextLine();
}
return arr;
}
public static void output(File file, String[] info) throws IOException{
FileWriter writer = new FileWriter("fileName.txt");
for(String aString:info){
writer.write(aString);
}
writer.close();
}
public static void sortByMonth(String[]info){
String temp;
for (int j = 0; j < info.length; j++) {
for (int i = j + 1; i < info.length; i++) {
if (info[i].compareTo(info[j]) < 0) {
temp = info[j];
info[j] = info[i];
info[i] = temp;
}
}
}
}
}发布于 2021-04-02 11:24:33
只需在您的sortByMonth方法中调用output:而且,不需要将File对象传递给output,因为它不被使用。
public static void output(String[] info) throws IOException{
sortByMonth(info);
FileWriter writer = new FileWriter("fileName.txt");
for(String aString:info){
writer.write(aString);
}
writer.close();
}https://stackoverflow.com/questions/66918355
复制相似问题