Java中的多态排序转换

时间:2012-12-06 05:03:00

标签: java arrays sorting

我需要帮助解决以下问题。首先我列出了Numbers.java,下面是我对Strings.java的尝试。请帮忙!

  1. 编写一个类似于Numbers.java的程序Strings.java,它读入一个String对象数组并对它们进行排序。您可以只复制和编辑Numbers.java。

    package hw05;
    
    /*  
    Demonstrates selectionSort on an array of integers.
    */ 
    
    import java.util.Scanner;
    
    
    public class Numbers {  
    // --------------------------------------------  
    // Reads in an array of integers, sorts them,  
    // then prints them in sorted order.  
    // --------------------------------------------  
    public static void main(String[] args) {
    
        Integer[] intList;
        int size;
    
        Scanner scan = new Scanner(System.in);
    
        System.out.print("\nHow many integers do you want to sort? ");
        size = scan.nextInt();
        intList = new Integer[size];
    
        System.out.println("\nEnter the numbers...");
        for (int i = 0; i < size; i++)
            intList[i] = scan.nextInt();
        Sorting.selectionSort(intList);
    
        System.out.println("\nYour numbers in sorted order...");
        for (int i = 0; i < size; i++)
            System.out.print(intList[i] + " ");
        System.out.println();
    
    }
    }
    
  2. My Strings课程

    package hw05;
    
    /*
    Demonstrates selectionSort on an array of strings.
    */
    import java.util.Scanner;
    
    public class Strings {
        // --------------------------------------------
        // Reads in an array of strings, sorts them,
        // then prints them in sorted order.
        // --------------------------------------------
        public static void main(String[] args) {
    
            String[] stringList;
            String size;
    
            Scanner scan = new Scanner(System.in);
    
            System.out.print("\nHow many strings do you want to sort? ");
            size = scan.nextLine();
            stringList = new String[size];
    
            System.out.println("\nEnter the strings...");
            for (String i = 0; i < size; i++)
                stringList[i] = scan.nextLine();
            Sorting.selectionSort(stringList);
    
            System.out.println("\nYour strings in sorted order...");
            for (String i = 0; i < size; i++)
                System.out.print(stringList[i] + " ");
            System.out.println();
    
        }
    }
    

1 个答案:

答案 0 :(得分:0)

由于此声明,您将收到错误:

String size;

正如您稍后将其用作整数:

stringList = new String[size];

你应该像这样使用Integer.parse:

stringList = new String[Integer.parseInt(size)];

但是你之后再次使用大小的循环,所以我建议将它恢复为你在Numbers.java中的int。务必将扫描仪更改回:

scan.nextInt();

除此之外,我看不到任何其他问题。也许如果你发布输出并指出什么不起作用?