This is my list of Players and their Scores that I need to input from a text file, sort alphabetically, and then output to a new file. I then have to take the same list and sort it based on the average score at the end of each line and then output that sorted list to a file where the players are sorted by their scores. This is the list of players:
Bruce 127
Elayna 144
Lisa 153
Marcus 188
Amber 133
Ryan 149
Dorian 099
Joel 113
Kelly 097
This is my code so far. There are some methods and lines that are totally pointless that I haven't cleared out yet because I'm not sure if I need them or not.
public class MembersAndScores
{
//trying to create a method to read the input file, examine the first character in each line, and sort accordingly to get an alphabetically ordered list
public static void insert(int[] x, int i)
{
int temp = x[i];
int j = i - 1;
while (j >= 0 && temp <x[j])
{
x[j+1] = x[j];
j--;
}
x[j+1] = temp;
}
//Uses the insert method above by calling it to sort the array of strings below that hold the names and scores of the bowlers.
public static void insertionsort(int[] x)
{
for (int i = 1; i < 9; i++)
insert(x, i);
}
public static void main(String[] args) throws IOException
{
File inputFile = new File("players_scores.txt");
if (!inputFile.exists())
{
System.out.println("File players_scores.txt was not found.");
System.exit(0);
}
//setting up Scanner to read the input File, players_scores.txt. Created a String array to store the lines of text in.
Scanner input = new Scanner(inputFile);
String line;
String[] array1 = new String[9];
for (int i = 0; i <9; i++)
{
line = input.nextLine();
array1[i]= line;
}
//calling my sorting method to sort the lines stored inside array1[0] through array1[8].
Arrays.sort(array1);
//begins the process of creating the file where data is sorted by name. program checks for txt file and creates it if missing.
File sortName = new File("sortedbyname.txt");
PrintWriter output = new PrintWriter(sortName);
//checks to see if the file exists and creates it if it doesn't
if(!sortName.exists())
{
sortName.createNewFile();
}
for (int i = 0; i < 9; i++)
{
output.println(array1[i]);
}
output.close();
//close output so it finishes up and prints the stored lines to the document.
//begins the process of creating the file where data is sorted by score
File sortScore = new File("sortedbyscore.txt");
PrintWriter output2 = new PrintWriter(sortScore);
String line2;
Arrays.sort(array1);
//computer checks to see if it doesn't exist and creates it if it doesn't
if(!sortScore.exists())
{
sortScore.createNewFile();
}
for (int i = 0; i < 9; i++)
{
output2.println(array1[i]);
}
output2.close();
input.close();
}
}
insertionsort
method where you're trying to sort things in order, and then you callArrays.sort
, which calls the Java library method to do a sort--it doesn't call your ownsort()
method, but even if it did, I don't understand why you want to sort right after you've already done yourinsertionsort
. In any case, I think we need to know whether using Java'ssort
is allowed. – ajb 1 hour ago