자바 기초 지식 회고 - 자바 String final 클래스 일반 방법의 응용 문자열 배열 정렬

9062 단어 java String
/* * 1. 문자열 배열 을 지정 합 니 다.사전 순서에 따라 어 릴 때 부터 큰 순서 로 정렬 하 다. * {"nba","abc","cba","zz","qq","haha"} *  * 생각: * 1. 배열 정렬.선택 할 수 있 습 니 다. 거품 이 나 도 됩 니 다. * 2, for 내장 및 비교 및 위치 변경. * 3. 문제: 앞줄 은 정수 이 고 비교 연산 자 를 사용 하지만 지금 은 문자열 대상 입 니 다. *   문자열 대상 은 어떻게 비교 합 니까?시원 합 니 다. 대상 에 문자열 대상 비교 기능 을 제공 합 니 다. *    * compare To () 방법 을 충분히 활용 하여 문자열 정렬 *      int compareTo (String anotherString): 현재 String 대상 과 anotherString 을 비교 합 니 다.      (1) 같은 관 계 를 0 으로 되 돌려 줍 니 다.compare To 는 방법 equals (Object) 가 true 로 돌아 갈 때 만 0 을 되 돌려 줍 니 다.     * (2) 같 지 않 을 때 두 문자열 의 0 번 째 문자 부터 비교 하고 첫 번 째 같 지 않 은 문자 차 이 를 되 돌려 줍 니 다. 예 를 들 어 'abcdefghijklmn' 과 'abcdefghijalmn' 두 문자열 입 니 다.     *     앞 에 있 는 'abcdefghij' 와 마찬가지 로 뒤로 하 나 는 k 이 고 하 나 는 a 이 며 'abcdefghijklmn'. com pareto ('abcdefghijalmn') 는 'k' - 'a' 의 차 이 를 되 돌려 줍 니 다.양수 10      (3) 다른 경우 긴 문자열 의 앞부분 은 공교롭게도 짧 은 문자열 로 길이 차 이 를 되 돌려 줍 니 다."abcdefghijklmn"과 "abcdefghij",             앞의 문자열 이 뒤의 문자열 보다 많 으 면 되 돌아 오 는 길이 가 4 입 니 다.    *  */
 
다음은 거품 정렬, 정렬 선택, 정렬 삽입 등 세 가지 정렬 방법 을 사용 하여 문자열 을 비교 한 후 정렬 합 니 다.
public class StringSort {



    /**

     * @param args

     */

    public static void main(String[] args) {



        String[] arr = { "nba", "abc", "cba", "zz", "qq", "haha" };

        printArray(arr);

        sortString(arr);

        printArray(arr);



    }

    /**

     *         

     * @param arr

     */

    public static void sortString(String[] arr) {

        String temp = null;

        for (int i = 0; i < arr.length - 1; i++) {

            for (int j = i + 1; j < arr.length; j++) {



                if(arr[i].compareTo(arr[j])>0){//      compareTo  

                    temp = arr[i];

                    arr[i] = arr[j];

                    arr[j] = temp;

                }

            }

        }

    }

    /**

     *     ,        

     * @param arr

     */

    public static void bubbleSortString(String[]arr){

        int s = arr.length;

        for(int out = s-1;out>0;out--){

            for(int in=0;in<out;in++){

                if(arr[in].compareTo(arr[in+1])>0){

                    String temp = arr[in];

                    arr[in] = arr[in+1];

                    arr[in+1] = temp;

                }

            }

        }

    }

    /**

     *       ,        

     * @param arr

     */

    public static void selectedSortString(String[] arr){

        int s = arr.length;

        String temp;

        int min;

        for(int out=0;out<s-1;out++){

            min = out;

            for(int in=out+1;in<s;in++){

                if(arr[in].compareTo(arr[min]) < 0){

                    min = in;//    ,    min     ,        ,   ,        

                }

            } 

            //     min                  ,        

            temp = arr[out];

            arr[out] = arr[min];

            arr[min] = temp;

        }

        

    }

    /**

     * 

     * @param arr

     *     ,           ,       ,    。

     */

    public static void insertSortString(String[]arr){

        String temp;

        int in;

        int s = arr.length;

        for(int out=1;out < s;out++){

            in = out; //in out       

            temp = arr[out];

            while(in > 0 && temp.compareTo(arr[in-1]) < 0){//

                arr[in] = arr[in-1];//

                --in;

            }

            arr[in] = temp;//        

        }

    }



    /**

     *      

     * @param arr

     */



    public static void printArray(String[] arr) {

        System.out.print("[");

        for (int i = 0; i < arr.length; i++) {

            if (i != arr.length - 1)

                System.out.print(arr[i] + ", ");

            else

                System.out.println(arr[i] + "]");

        }

    }



}

좋은 웹페이지 즐겨찾기