MySort(選作)

1、題目要求

  • 注意:研究sort的其餘功能,要能改的動代碼,須要答辯
  • 模擬實現Linux下Sort -t : -k 2的功能。
  • 要有僞代碼,產品代碼,測試代碼(注意測試用例的設計)
  • 參考 Sort的實現。提交博客連接。html

  • 必須答辯才能得分java

2、代碼

1.僞代碼

輸出排序前的數組;
命令行輸入參數;
判斷參數是否符合要求;
對排序好的數組遍歷並輸出第二列元素相同的toSort數組。

2.產品代碼

import java.util.*;

public class MySort {
    public static void main(String [] args) {
        String [] toSort = {
                "aaa:10:1:1",
                "ccc:30:3:4",
                "bbb:50:4:5",
                "ddd:20:5:3",
                "eee:40:2:20"};

        System.out.println("Before sort:");//輸出排序前字符串數組
        for (String str: toSort)
            System.out.println(str);

        int [] a=new int[toSort.length];
        for(int i=0;i<toSort.length;i++){//對toSort每個元素用split進行劃分,並儲存進字符串數組list中
            String [] list=toSort[i].split(":");
            a[i]=Integer.parseInt(list[1]);//將list中第二個元素,即toSort中第二列元素存進a中
        }
        Arrays.sort(a);

        System.out.println("After sort:");
        for (int i = 0; i < a.length; i++)//對a中每一個元素
            for (int j = 0; j < toSort.length; j++)//在toSort中每個元素的第二列中比較
                if (a[i] == Integer.parseInt((toSort[j].split(":"))[1]))//若是兩者相等
                    System.out.println(toSort[j]);//就輸出該項元素
    }
    public static int StringTest1(String str){
        int  a;
            String [] list=str.split(":");
            a=Integer.parseInt(list[1]);//將list中第二個元素,即toSort中第二列元素存進a中
        return a;
    }
    public static int[] StringTest2(String[] toSort){
        int [] a=new int[toSort.length];
        for(int i=0;i<toSort.length;i++){//對toSort每個元素用split進行劃分,並儲存進字符串數組list中
            String [] list=toSort[i].split(":");
            a[i]=Integer.parseInt(list[1]);//將list中第二個元素,即toSort中第二列元素存進a中
        }
        Arrays.sort(a);
        return a;
    }
}

3.測試代碼

import junit.framework.TestCase;
import org.junit.Test;

public class MySortTest extends TestCase {
    String [] toSort = {
            "aaa:10:1:1",
            "ccc:30:3:4",
            "bbb:50:4:5",
            "ddd:20:5:3",
            "eee:40:2:20"};
    @Test
    public void testl() {
        assertEquals(10,MySort.StringTest1("aaa:10:1:1"));
    }
    public void test2() {
        assertEquals(20,MySort.StringTest2(toSort)[1]);
    }
}

3、實驗截圖

SP.參考資料

1.20175214 MySort(選作)
2.MySort做業與IO-Myhead
3.課下選作做業MySort數組

相關文章
相關標籤/搜索