一、题目要求

  • 模拟实现Linux下Sort -t : -k 2的功能。
  • 要有伪代码,产品代码,测试代码(注意测试用例的设计)
  • 参考 Sort的实现。提交博客链接。

二、设计思路

  • 在命令行中输入需要的参数;
  • 使用split方法将每一行分解获得需要的可供排序的数组;
  • 对获得的数组排序;
  • 将排序后的数组输出。

三、代码实现

  • 伪代码:

    • 输出排序前的数组;
    • 命令行输入参数;
    • 判断参数是否符合要求;
    • 对排序好的数组遍历并输出第二列元素相同的toSort数组。
  • 产品代码:

    import java.util.*;
    public class MySort {
    public void mySort(String[] toSort, int k) {
    System.out.println("Before sort:");
    for (String str : toSort) {
    System.out.println(str);
    }
    int length = toSort.length;
    int[] a = new int[length];
    if (k == 1) {
    for (int i = 0; i < length; i++) {
    a[i] = Integer.parseInt(toSort[i].split(":")[k]);
    }
    }
    Arrays.sort(a);
    System.out.println("After sort:");
    for (int i = 0; i < length; i++) {
    for (int j = 0; j < length; j++) {
    if (a[i] == Integer.parseInt(toSort[j].split(":")[k])) {
    System.out.println(toSort[j]);
    }
    }
    }
    }

}


- 测试代码:

public class MySortTest {

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"};

int a = Integer.parseInt(args[0]);

MySort mysort = new MySort();

mysort.mySort(toSort, a);

}

}


## 四、测试结果截图
![](https://img2018.cnblogs.com/blog/1592121/201905/1592121-20190519154155074-1884191996.png) ## 五、码云链接 [码云链接](https://gitee.com/fzlzc/java2019/commit/fe575839f2f213be22e4964de9f46d81e5809c37)

20175214 MySort(选做)的更多相关文章

  1. MySort(选做)

    一.题目要求 注意:研究sort的其他功能,要能改的动代码,需要答辩 模拟实现Linux下Sort -t : -k 2的功能. 要有伪代码,产品代码,测试代码(注意测试用例的设计) 参考 Sort的实 ...

  2. MySort(选做)的实现

    MySort(选做)的实现 题目内容 注意:研究sort的其他功能,要能改的动代码,需要答辩 模拟实现Linux下Sort -t : -k 2的功能. 要有伪代码,产品代码,测试代码(注意测试用例的设 ...

  3. 2017-2018-2 20165312 课下选做 MySort

    2017-2018-2 20165312 课下选做 MySort 题目描述 模拟实现Linux下Sort -t : -k 2的功能,参考 Sort的实现. import java.util.*; pu ...

  4. 课下选做作业MySort

    20175227张雪莹 2018-2019-2 <Java程序设计> 课下选做作业MySort 要求 注意:研究sort的其他功能,要能改的动代码,需要答辩 模拟实现Linux下Sort ...

  5. [SDOI2016]部分题选做

    听说SDOI蛮简单的,但是SD蛮强的.. 之所以是选做,是因为自己某些知识水平还不到位,而且目前联赛在即,不好花时间去学sa啊之类的.. bzoj4513储能表&bzoj4514数字配对 已写 ...

  6. 20175221 《Java程序设计》迭代和JDB(课下作业,选做):

    20175221 <Java程序设计> 迭代和JDB(课下作业,选做): 任务详情 1 使用C(n,m)=C(n-1,m-1)+C(n-1,m)公式进行递归编程实现求组合数C(m,n)的功 ...

  7. MyOD(课下作业,选做)

    MyOD(课下作业,选做) 代码要求 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数: java MyCP -tx XXX1.txt XXX2.b ...

  8. 迭代和JDB(课下作业,选做)

    迭代和JDB(课下作业,选做) 题目要求 1 使用C(n,m)=C(n-1,m-1)+C(n-1,m)公式进行递归编程实现求组合数C(m,n)的功能 2 m,n 要通过命令行传入 3 提交测试运行截图 ...

  9. 20175312 2018-2019-2 《Java程序设计》第6周课下选做——类定义

    20175312 2018-2019-2 <Java程序设计>第6周课下选做--类定义 设计思路 1.我觉得Book其实就是一个中转的作用,由测试类Bookself通过Book输入数据,然 ...

随机推荐

  1. javascrip标签的href属性

    1.标签的href属性用于指定超链接目标的URL.href属性的值可以是任何有效文档的相对或绝对URL,包括片段ID和javascript代码段. 2.javascript:这是一个虚假的协议.所谓的 ...

  2. CSS—BFC原理解析与应用

    我们在很多地方都见过BFC这个词,或许能够知道大概意思,但是有时候它的具体原理以及作用会记得很模糊,下面就对BFC这个概念深入学习下. 块级格式化上下文(Block Formatting Contex ...

  3. linux网络协议栈(四)链路层 vlan处理

    转:http://blog.csdn.net/u010246947/article/details/18224517 4.6.VLAN处理: 4.6.1.vlan原理 对于带vlan的以太网报文,其以 ...

  4. 蓝牙App漏洞系列分析之二CVE-2017-0639

    蓝牙App漏洞系列分析之二CVE-2017-0639 0x01 漏洞简介 Android本月的安全公告,修复了我们发现的另一个蓝牙App信息泄露漏洞,该漏洞允许攻击者获取 bluetooth用户所拥有 ...

  5. raise与raise······from

    在python中,如果想手动引发一个异常,我们一般都会使用raise # -*- coding:utf-8 -*- # @Author: WanMingZhu # @Date: 2019/10/22 ...

  6. 在values中添加colors.xml

    如何在values中添加colors.xml文件?按钮上的文字,背景色的动态变化的xml放在res/drawable里,现在我就说静态的xml文件吧. res/values/colors.xml< ...

  7. AD软件中可视栅格 捕捉栅格 电气栅格的功能和设置详解

    AD16的栅格设置 AD16系统共有3种栅格:可视栅格.电气栅格.捕捉栅格. Snap:捕获栅格,如果设定值是10mil,鼠标的光标拖动零件引脚,距离可视栅格在10mil范围之内时,零件引脚自动的准确 ...

  8. Can you answer these queries I SPOJ - GSS1 (线段树维护区间连续最大值/最大连续子段和)

    You are given a sequence A[1], A[2], ..., A[N] . ( |A[i]| ≤ 15007 , 1 ≤ N ≤ 50000 ). A query is defi ...

  9. Token认证的优势与劣势

    token 我们说的token,是指 访问资源的凭据 .使用基于 Token 的身份验证方法,在服务端不需要存储用户的登录记录. 大致流程: 客户端使用用户名跟密码请求登录服务端收到请求,验证用户名与 ...

  10. Linux之screen用法

    Screen被称之为一个全屏窗口管理器,用他可以轻松在一个物理终端上获得多个虚拟终端的效果. Screen功能说明: 简单来说,Screen是一个可以在多个进程之间多路复用一个物理终端的窗口管理器,这 ...