zoukankan      html  css  js  c++  java
  • 学号20175301 《实现Linux下Sort -t : -k 2功能》

    一、题目要求

    模拟实现Linux下Sort -t : -k 2的功能。
    要有伪代码,产品代码,测试代码(注意测试用例的设计)

    二、题目信息

    题目中给的一段代码模型:

    1 import java.util.*;
    2
    3 public class MySort1 {
    4     public static void main(String [] args) {
    5         String [] toSort = {"aaa:10:1:1",
    6                             "ccc:30:3:4",
    7                             "bbb:50:4:5",
    8                             "ddd:20:5:3",
    9                             "eee:40:2:20"};
    10
    11         System.out.println("Before sort:");
    12         for (String str: toSort)
    13                     System.out.println(str);
    14
    15         Arrays.sort(toSort);
    16
    17         System.out.println("After sort:");
    18         for( String str : toSort)
    19             System.out.println(str);
    20     }
    21 }
    

    要求实现Sort -t : -k 2的功能

    • -t 分隔符,将每一行数据按照该选项指定的分隔符分成多个域。默认情况下是使用tab键或者空格符来分割的。
    • -k 指定用哪个域的数据来进行排序
    • Sort -t : -k 2:即要求以冒号作为分隔符,给定数据的第二个区域的升序排列为标准,对输入数据进行排序。

    三、解题思路

    伪代码:

    1. 用split方法将tosort以冒号分割为四组
    2. 将第二组储存进数组K
    3. 遍历数组获取元素个数
    4. 对K数组进行arrays方法重新排序
    5. 排序后按照新K对原数组进行排列
    6. 输出新字符组
      产品代码:
    package Mysort;
    
    import com.sun.jdi.ArrayReference;
    
    import java.util.*;
    public class mysortable {
        public void mySort(String []toSort){
            System.out.println("Before sort:");
            for (String str : toSort) {
                System.out.println(str);
            }
            int[] k = new int [toSort.length];
            for (int i = 0; i < toSort.length; i++) {
                String[] tmp = toSort[i].split(":");
                k[i] = Integer.parseInt(tmp[1]);
            }
            System.out.println("After sort:");
            Arrays.sort(k);
            for (int i = 0; i < k.length; i++) {
                for (int j = 0; j < toSort.length; j++){
                    if (k[i] == Integer.parseInt((toSort[j].split(":"))[1])) {
    
                        System.out.println(toSort[j]);
                    }
                }
            }
        }
    }
    

    测试代码:

    import Mysort.mysortable;
    
    public class testMysort {
        public static void main(String[] args) {
            mysortable sort1 = new mysortable();
            String[] toSort = {"aaa:10:1:1",
                    "ccc:30:3:4",
                    "bbb:50:4:5",
                    "ddd:20:5:3",
                    "eee:40:2:20"};
            sort1.mySort(toSort);
            System.out.println();
        }
    }
    

    四、实验截图

    五、码云链接

    https://gitee.com/ShengHuoZaiDaXue/20175301/tree/master/20175301/Mysort

  • 相关阅读:
    实现类莫名的错误解决
    xml文件不识别dubbo标签,添加支持的方法
    不要粗心马虎,不然你要付出几倍的精力纠错
    redis 缓存功能摘要
    spring的maven工程(服务层和表现层分离)配置浅析
    暂时放弃dubbo
    Maven工程的JDK版本配置
    spring的SOA聚合工程应用框架的搭建
    阿里云用宝塔面板安装JDK、zookeeper、dubbo
    maven项目不能正常运行
  • 原文地址:https://www.cnblogs.com/lijinran/p/10889029.html
Copyright © 2011-2022 走看看