MySort

时间:2019-05-19 22:07:02   收藏:0   阅读:136

MySort

一、设计思路

确定MySort的要求

根据需求可知MySort需要实现类似Linux下Sort -t : -k 2的功能,在网上查找了一下Sort命令的功能以及-t-k参数的作用,经查找后了解到命令参数的功能如下。

伪代码

在此我描述的是修改并添加的排序以及输出部分

实现步骤

import java.util.*;
public class MySort {
    public static void main(String[] args) {
        int i=0;
       
        StringTokenizer fenxi;
        String tem;
        String[] toSort = {"aaa:10:1:1",
                "ccc:30:3:4",
                "bbb:50:4:5",
                "ddd:20:5:3",
                "eee:40:2:20"};
        String sort[] = new String[toSort.length];
        String temp[] = new String[toSort.length];
        System.out.println("Before sort:");
        for (String str : toSort) {
            String con=null;
            System.out.println(str);
            fenxi=new StringTokenizer(str,":");
            fenxi.nextToken();
            con=fenxi.nextToken();
            sort[i]=con;
            temp[i]=con;
            i++;
        }

        Arrays.sort(sort);
        System.out.println("After sort:");

            for(String sor:sort){
                for(int k=0;k<toSort.length;k++){
                    if(temp[k].equals(sor)){
                        System.out.println(toSort[k]);
                    }
                }
            }
        }
}

运行结果如图:
技术分享图片

二、代码测试结果

我在虚拟机下进行了测试,并用args数组将参数-k指定的区域传入程序,从而得到了不同的排序结果,经测试所得输出都符合预期。测试代码如下:

import java.util.*;
public class MySort {
    public static void main(String[] args) {
        int i=0;
        int mod = Integer.parseInt(args[3])-1;
        StringTokenizer fenxi;
        String tem;
        String[] toSort = {"aaa:10:1:1",
                "ccc:30:3:4",
                "bbb:50:4:5",
                "ddd:20:5:3",
                "eee:40:2:20"};
        String sort[] = new String[toSort.length];
        String temp[] = new String[toSort.length];
        System.out.println("Before sort:");
        for (String str : toSort) {
            String con=null;
            System.out.println(str);
            fenxi=new StringTokenizer(str,":");
            for(int p=0;p<mod;p++){
                fenxi.nextToken();
            }
            con=fenxi.nextToken();
            sort[i]=con;
            temp[i]=con;
            i++;
        }

        Arrays.sort(sort);
        System.out.println("After sort:");

            for(String sor:sort){
                for(int k=0;k<toSort.length;k++){
                    if(temp[k].equals(sor)){
                        System.out.println(toSort[k]);
                    }
                }
            }
        }
}

测试结果如图:
技术分享图片

三、码云代码

MySort
MySortTest

、参考资料

原文:https://www.cnblogs.com/nameless-student/p/10886209.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!