我需要以下代码的帮助 -
程序应该读取一个整数列表的文本文件,根据用户的选择按升序或降序对它们进行排序,并将其导出为文本文件。在我尝试使用第一种方法中的java读取文件之前,整数作为数组包含在代码中时,代码工作正常。之后,没有打印任何内容以匹配用户输入。
这是我目前所拥有的:
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Arrays;
import java.util.Scanner;
public class BubbleSorting {
public static int[] readFiles(String file) throws FileNotFoundException{
File f= new File("input.txt");
Scanner x= new Scanner(f);
int [] intArray= new int[100];
Scanner s1= new Scanner(f);
for (int i=0; i< intArray.length; i++)
intArray[i] = s1.nextInt();
return intArray;
}
public static void main (String[] args) throws FileNotFoundException {
int[] intArray= readFiles("input.txt");
System.out.println("Select from the following options:\n (A) Sort integers by ascending order \n (B) Sort by descending order "
+ "\n (C) Both. \n Please input your selection below.");
Scanner a = new Scanner(System.in);
String choice = a.nextLine();
if (choice.equals("A") || choice.equals("a")) {
bubbleSortInASC(intArray);
System.out.println("You have chosen to sort in ascending order:");
//print array after sorting using bubble sort algorithm
for(int i=0; i < intArray.length; i++){
System.out.println(intArray[i]);}}
else if (choice.equals("B") || choice.equals("b")) {
//sort an array in descending order using bubble sort algorithm
bubbleSortDSC(intArray);
System.out.println("You have chosen to sort in descending order:");
//print array after sorting using bubble sort algorithm
for(int i=0; i < intArray.length; i++){
System.out.println(intArray[i] + " ");
}}
else if (choice.equals("C") || choice.equals("c")) {
System.out.println("You have chosen to sort in both ascending and descending order.");
bubbleSortInASC(intArray);
System.out.println("In ascending order: ");
for(int i=0; i < intArray.length; i++){
System.out.println(intArray[i]+ " "); }
bubbleSortDSC(intArray);
System.out.println("\nIn descending order: ");
for(int i=0; i < intArray.length; i++){
System.out.println(intArray[i]+ " " ); }
}
else {
System.out.println("That was not one of the options provided. Please try again.");
}
}
public static void bubbleSortDSC(int intArray[]) {
int n = intArray.length;
int temp = 0;
for(int i=0; i < n; i++){
for(int j=1; j < (n-i); j++){
if(intArray[j-1] < intArray[j]){
//swap the elements!
temp = intArray[j-1];
intArray[j-1] = intArray[j];
intArray[j] = temp;}
}}
}
public static void bubbleSortInASC(int numbers[])
{
int temp;
for(int i = 0; i < numbers.length; i++)
{
for(int j = 1; j < (numbers.length -i); j++)
{
//if numbers[j-1] > numbers[j], swap the elements
if(numbers[j-1] > numbers[j])
{
temp = numbers[j-1];
numbers[j-1]=numbers[j];
numbers[j]=temp;
}
}
}}
}
非常感谢任何帮助。
答案 0 :(得分:0)
用
替换readFiles method
public static int[] readFiles(String file) throws FileNotFoundException{
File f= new File("input.txt");
//Scanner x= new Scanner(f); //you havent used it
int [] intArray= new int[10];
Scanner s1= new Scanner(f);
for (int i=0; i< intArray.length; i++)
intArray[i] = s1.nextInt();
s1.close();//should close inputstream after use it
return intArray;
}
并确保input.txt
位于当前目录下。