课上实践练习——MySort
2017-05-31 15:48
141 查看
模拟实现Linux下Sort -t : -k 2的功能。参考 Sort的实现。提交码云链接和代码运行截图。
Linux下Sort -t : -k 2的功能
sort的工作原理:sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。
sort的-t选项和-k选项
如果有一个文件的内容是这样:
[rocrocket@rocrocket programming]$ cat facebook.txt banana:30:5.5 apple:10:2.5 pear:90:2.3 orange:20:3.4
这个文件有三列,列与列之间用冒号隔开了,第一列表示水果类型,第二列表示水果数量,第三列表示水果价格。
,sort提供了-t选项,后面可以设定间隔符。(是不是想起了cut和paste的-d选项,共鸣~~)
指定了间隔符之后,就可以用-k来指定列数了。
[rocrocket@rocrocket programming]$ sort -n -k 2 -t : facebook.txt apple:10:2.5 orange:20:3.4 banana:30:5.5 pear:90:2.3
我们使用冒号作为间隔符,并针对第二列来进行数值升序排序.
题目:
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 }
代码补充如下
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 [] k2 = new int[toSort.length]; for(int i =0;i<toSort.length;i++){ String[] div = toSort[i].split(":");//split(regex),参数为要分隔的字符串或者正则表达式 k2[i]=Integer.parseInt(div[1]); } Arrays.sort(k2); String[] save = new String[k2.length]; for(int i=0;i<toSort.length;i++) for (int k = 0; k < k2.length; k++) { if (toSort[i].substring(4,6).equals(String.valueOf(k2[k]))) { save[k]=toSort[i]; } } System.out.println(); System.out.println("After sort:"); for(int i =0;i<save.length;i++){ System.out.println(save[i]); } } }
运行截图
代码托管
相关文章推荐
- 【Robotium学习笔记】实践篇---官网实例练习(2016.3.7)
- 《Python编程:从入门到实践》课后练习6-1到6-11
- NFS实践练习
- 01利用sklean练习机器学习--sklean之感知机preceptron模型实践
- 软工实践练习一——使用Git进行代码管理心得
- 课堂实践及课后练习9.27@20155223
- 《python机器学习及实践》书籍代码练习
- Accelerated C++:通过示例进行编程实践——练习解答(第7章)
- Smart/400开发上手3: 练习实践
- Python Sting 练习实践(一)
- jQuery插件实践之轮播练习(二)
- 清晨练习-面向对象实践
- 会声会影X6-高级运动等效果的练习实践-与您分享...
- 软工实践练习——一个人
- 《Python编程快速上手》第8.9.3实践练习
- Python编程:从入门到实践 5.4.3 练习 5-10 检查用户名
- Accelerated C++:通过示例进行编程实践——练习解答(第12章)
- 《Python编程:从入门到实践》课后练习5-1到5-11
- python编程:从入门到实践-第五章练习
- 《Python编程:从入门到实践》课后练习7-1到7-10