20165215 MySort的实现
2024-10-18 02:47:31
MySort的实现
要求
模拟实现Linux下Sort -t : -k 2的功能
要有伪代码,产品代码,测试代码(注意测试用例的设计)
import java.util.*;
public class MySort1 {
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);
Arrays.sort(toSort);
System.out.println("After sort:");
for( String str : toSort)
System.out.println(str);
}
}
相关知识点
sort
- 工作原理:从每个比较单元的首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出
- 相关命令行
- -u:在输出中去除重复行
- -r:将输出改为降序排列
- -n:以数值来进行排序,避免出现10比2小的错误
- -t -k n:当输入有多列时,表示输出将按第n列的数值进行排序
- -f:忽略大小写进行比较
- -b:从第一个可见字符开始比较
- -C:检查文件是否已排好序,如果乱序则返回1
- 因此对以上模板执行sort -t : -k 2,就是要实现对使用“:”分隔的第二列字符串按照从小到大的顺序重新排列的功能
split
public String[] split(String regex)
:一个String类的数组以regex传入的分隔符为标准,对字符串进行分隔,使用时分隔符要放在双括号中
代码
- 伪代码
将tosort数组以第二列数值大小为标准从小到大排列:
新建数组a,长度与tosort数据长度相同
调用split函数将tosort数组以:(冒号)为分隔符分成小字符串
将每一个tosort元素的第二例数值存入数组a中
调用Arrays类的sort函数对a进行排序
使用嵌套循环输出排序后的结果
- 产品代码
package week12;
import java.util.*;
import java.lang.Integer;
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++){
String [] tmp = toSort[i].split(":");
a[i] = Integer.parseInt(tmp[1]);
}
Arrays.sort(a);
System.out.println("After sort:");
for (int i = 0; i < a.length; i++)
for (int j = 0; j < toSort.length; j++)
if (a[i] == Integer.parseInt((toSort[j].split(":"))[1]))
System.out.println(toSort[j]);
}
}
运行结果
测试结果
最新文章
- Unity使用Windows弹窗保存图片
- 聚类算法kmeans
- Beta版本冲刺———第二天
- Yii2 高级版新建一个 Api 应用
- iOS中NSUserDefaults详解
- [LeetCode] Valid Parentheses
- VS 2013 Preview 自定义 SharePoint 2013 列表 之 两个Bug
- dede5.7前台插入恶意JS代码
- Borg Maze(MST &; bfs)
- VBA実績表
- C# socket 实现消息中心向消息平台 转发消息
- Synchronized Methods
- Activiti源码分析(框架、核心类。。。)
- Eclipse 每行 80 字符限制的提示线
- js常用正则表达式汇总
- 各种Adapter的用法
- linux内核包转发过程(三)NIC帧接收分析
- linux awk 常见字符串处理
- Literal 字面值 字面量 的理解
- delphi 程 序从exe运行改成dll库
热门文章
- Java代码中解压RAR文件
- SQL Server 中,如何獲得上個月的第一天和最後一天( 帶時間戳)
- 使用Python启动一个简单的服务器
- Flask学习笔记(2)--最简单的小应用
- kafka---->;kafka connect的使用(一)
- 五、Sql Server 基础培训《进度5-数据类型(知识点+实际操作)》
- 微信小程序(微信应用号)组件讲解[申明:来源于网络]
- 20175320 2018-2019-2 《Java程序设计》第5周学习总结
- 从session中获取当前用户的工具类
- [01-01]oracle数据库汉化