如何对字母和数字进行排序

时间:2019-05-02 07:10:53

标签: java

在我的编码中,我正在根据名称对输出进行排序。但是,如果我输入相同的名称,则数组保持不变。有什么办法,当名字相同时,数字将被排序?预先感谢。


 public class InsertionSort {

           /*Function to sort array using insertion sort*/
            void sort(String str[]) 
            { 
                int n = str.length; 
                for (int i=1; i<n; ++i) 
                { 
                    String key = str[i]; 
                    int j = i-1; 

                    /* Move elements of arr[0..i-1], that are 
                       greater than key, to one position ahead 
                       of their current position */
                    while (j >= 0 && key.compareTo(str[j]) < 0)  
                    { 
                        str[j+1] = str[j]; 
                        j = j-1; 
                    } 
                    str[j+1] = key; 
                } 
            } 

            /* A utility function to print array of size n*/
            static void printArray(String str[]) 
            { 
                int n = str.length; 
                for (int i=0; i<n; ++i) 
                    System.out.print(str[i] + " "); 

                System.out.println(); 
            } 

            // Driver method 
            public static void main(String args[]) 
            {         
                 String[]  str ={"asif44","asif435"}; //2 elements



                printArray(str); 
            } 
        } 

2 个答案:

答案 0 :(得分:0)

有一种更精确的方法可以做到这一点,将字符串元素添加到集合框架数据类型中并使用collections.sort()方法。

答案 1 :(得分:-1)

您没有在代码中调用sort()方法。另外,您将需要使sort()方法为静态方法,以便能够从main()方法进行调用。

  // Driver method 
            public static void main(String args[]) 
            {         
                 String[]  str ={"asif44","asif435"}; //2 elements

                 **sort(str);**

                printArray(str); 
            }