【发布时间】:2021-06-29 23:26:38
【问题描述】:
所以我正在尝试编写一些代码来找到一种对现有文本文件进行冒泡排序的方法,我以数组的形式收集了信息,它看起来像这样:
04/26/16 Sega 3D Classics Collection 07/14/16 Batman: Arkham Underworld 06/24/16 Tokyo Mirage Sessions #FE
基本上我希望它们按字母顺序排列,它应该创建一个如下所示的全新文件:
Batman: Arkham Underworld Sega 3D Classics Collection Tokyo Mirage Sessions #FE
问题是我不知道如何删除它最初属于的字符串的日期。我认为应该有某种函数,如 javascript 中的 indexOf() 。我会假设在提取名称之后。然后排序将与我为日期排序所做的排序相同。
这是我做的代码:
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("C:/Users/cyrus/Downloads/Lab 11/releasedates.txt");
String []arr = input(file);
output(file,arr);
outputSort1(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("C:/Users/cyrus/Downloads/Lab 11/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;
}
}
}
}
public static void outputSort1(File file,String[] info) throws IOException{
sortByMonth(info);
FileWriter writer = new FileWriter("C:/Users/cyrus/Downloads/Lab 11/fileNameSorted1.txt");
for(String aString:info){
writer.write(aString);
}
writer.close();
}
public static void sortByName(String[]info){
//this isn't really finished, I am unsure on how to extract JUST the name of the games
}
}
【问题讨论】:
标签: java loops file sorting methods