, поэтому я пытался читать данные из файла в массивы и использовать сортировку по пузырькам для упорядочивания данных. Мне нужен метод для чтения файла и сортировки пузырьков. Я не знаю, как заставить данные считываться в пузырьковую сортировку, в дополнение к тому факту, что мой код никогда не достигает пузырьковой сортировки. Вот мой код:
{
Scanner in = new Scanner (System.in);
//Error trap
while (true)
{
System.out.println ("Which sorting method would you like to use? (Type bubble for Bubble Sort or insert for Insertion Sort)");
String sort = in.nextLine ();
if (sort.equalsIgnoreCase ("bubble"))
{
bubble (args, args, args, args, args);
}
if (sort.equalsIgnoreCase ("insert"))
{
insert ();
}
else
{
System.out.println ("Please enter the correct data.");
}
}
}
public static void readfile () throws IOException
{
//Declaring variables
String fileName, fnameTemp, lnameTemp, cityTemp, ageTemp, emailTemp;
int howMany = 0;
Scanner in = new Scanner (System.in);
System.out.println ("Enter the file name:");
fileName = in.nextLine ();
BufferedReader input;
input = new BufferedReader (new FileReader (fileName));
fnameTemp = input.readLine ();
lnameTemp = input.readLine ();
cityTemp = input.readLine ();
ageTemp = input.readLine ();
emailTemp = input.readLine ();
//Reading data until end of the file to determine the number of records
while (fnameTemp!= null)
{
howMany++;
fnameTemp = input.readLine ();
lnameTemp = input.readLine ();
cityTemp = input.readLine ();
ageTemp = input.readLine ();
emailTemp = input.readLine ();
}
input.close ();
input = new BufferedReader (new FileReader (fileName));
String fname [] = new String [howMany];
String lname [] = new String [howMany];
String city [] = new String [howMany];
String age [] = new String [howMany];
String email [] = new String [howMany];
for (int count = 0; count < howMany; count++)
{
fname [count] = input.readLine ();
lname [count] = input.readLine ();
city [count] = input.readLine ();
age [count] = input.readLine ();
email [count] = input.readLine ();
}
input.close ();
for (int count = 0; count < howMany; count++)
{
//System.out.println (fname [count]);
//System.out.println (lname [count]);
//System.out.println (city [count]);
//System.out.println (age [count]);
//System.out.println (email [count]);
}
}
public static void bubble (String fname [], String lname [], String city [], String age [], String email []) throws IOException
{
String temp, temp2, temp3, temp4, temp5;
int howMany = 0;
readfile ();
Scanner in = new Scanner (System.in);
System.out.println ("Which item would you like to sort?");
System.out.println ("Type firstname, lastname, city, age, or email to choose.");
String item = in.nextLine ();
if (item.equalsIgnoreCase ("firstname"))
{
for (int i = 1; i <= howMany; i++)
{
for (int j = 0; j < howMany; j++)
{
if (fname [j].compareToIgnoreCase (fname [j + 1]) > 0)
{
temp = fname [j];
fname [j] = fname [j + 1];
fname [j + 1] = temp;
temp2 = lname [j];
lname [j] = lname [j + 1];
lname [j + 1] = temp2;
temp3 = city [j];
city [j] = city [j + 1];
city [j + 1] = temp3;
temp4 = age [j];
age [j] = age [j + 1];
age [j + 1] = temp4;
temp5 = email [j];
email [j] = email [j + 1];
email [j + 1] = temp5;
System.out.println (fname [i]);
System.out.println (lname [i]);
System.out.println (city [i]);
System.out.println (age [i]);
System.out.println (email [i]);
System.out.println ("Sorted");
}
}
}
}
Просто примечание, которое никогда не пропадет (int i = 1; i <= howMany; i ++) </p>
В моем текстовом файле есть фрагмент данных на каждой строке, идущей от имени, фамилии, города, возраста и адреса электронной почты.
Любая помощь будет принята с благодарностью. Спасибо