关于本次课后的一些话

关于这次课上的关于sort -nk 2 -t: sort.txt的实验没能在课上做出,有自身的知识不够,没能灵活运用所学知识,以及在当时课上走了会神,回过头来已经不知道该干些什么了,以至于在哪里手忙脚乱脑子一片空白。总之,你投入多少,就能获得多少,学与不学只在那一念之间。

我的实验过程

  • 先弄清楚老师给的模板
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);
//sort
int [] k3 = new int[toSort.length];
for (int i = 0 ; i < toSort.length ; i ++){
String [] tmp = toSort[i].split(":");
k3[i] = .....
}
Arrays.sort(k3);
System.out.println("After sort:");
Arrays.sort(k3);
for (int i = 0 ; i < k3.length;i++){
for (int j = 0 ; j <toSort.length;j++)
if (k3[i] == ) {
System.out.println(toSort[j]);
}}
}
}

我认为最关键的代码有三:

  • 1.String [] tmp = toSort[i].split(":")
  • 2.k3[] = ...
  • 3.if (k3[i] == ...)

首先,数组tmp是会随着循环而改变的。

    for(int i = 0;i < toSort.length;i++){
String[] tmp = toSort[i].split(":")
}
/* i=0 , tmp = {aaa , 10 , 1 , 1}
i=1 , tmp = {ccc , 30 , 3 , 4}
i=2 , tmp = {bbb , 50 , 4 , 5}
....
*/

其次,实验的目的是为了达到类似命令:sort -nk 2 -t:的效果所以有k3 = { 10 , 30 , 50 , 40 , 20}

    k3[i] = Integer.parseInt(tmp[1]);
  • 程序的最后一步中定义了一个循环,而循环中又套用了一个循环,而这么做的目的为:
    for (int i=0;i<k3.length;i++){
//从k3[0]循环到k3[k3.lenrth-1]
for (int j = 0 ; j <toSort.length;j++)
//每个k3[i]与从toSort[0]到toSort[toSort.length-1]的每个元素一一匹配
if (k3[i] == Integer.parseInt((toSort[j].split(":"))[1])) {
System.out.println(toSort[j]);
}
}
  • 最后要解决的问题是如何匹配:

我首先想到的是

    k3[i] == Integer.praseInt(toSort[j].subString(4,6))

但后来我认为此方法具有一般性,如果toSort数组中的元素为:aa:10:1:1那么程序就达不到要求。

突发奇想,有了以下尝试:

k3[i] == Integer.praseInt((toSort[j].split(":"))[1])

通过尝试我知道toSort[j].split(":")这是一个数组那么它的第二个元素就是我们相比对的数。

我的代码

    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:");
String [] tmps = toSort[0].split(":");
//System.out.println(tmps[1]);
for (String str: toSort)
System.out.println(str); int [] k3 = new int[toSort.length]; for (int i = 0; i < toSort.length;i ++){
String [] tmp = toSort[i].split(":");
// System.out.println(tmp[0]);
k3[i] = Integer.parseInt(tmp[1]);
}
// System.out.println(Arrays.toString(toSort[0].split(":"))); // System.out.println(k3[0]);
Arrays.sort(k3); /*for (int a = 0 ; a<k3.length;a++){
System.out.println(k3[a]);
}
*/
//System.out.println(Integer.parseInt((toSort[0].split(":"))[1]));
System.out.println("After sort:");
Arrays.sort(k3);
for (int i = 0 ; i < k3.length;i++){
for (int j = 0 ; j <toSort.length;j++)
if (k3[i] == Integer.parseInt((toSort[j].split(":"))[1])) {
System.out.println(toSort[j]);
}} }}

关于Mysort实验的补发博客的更多相关文章

  1. Oracle 0至6级锁的通俗解释及实验案例_ITPUB博客 http://blog.itpub.net/30126024/viewspace-2156232/

    Oracle 0至6级锁的通俗解释及实验案例_ITPUB博客 http://blog.itpub.net/30126024/viewspace-2156232/

  2. 20155325 2017-2018 1 课上测试、课下作业、实验——码云&博客链接汇总 《信息安全系统设计基础》

    第二周-课上 码云 https://gitee.com/bestiisjava2017/XinXiAnQuanXiTongSheJiJiChu20155325thl/tree/master/0927 ...

  3. 第七篇Scrum冲刺博客--Interesting-Corps

    第七篇Scrum冲刺博客 站立式会议 1.会议照片 2.队友完成情况 团队成员 昨日完成 今日计划 鲍鱼铭 各界面数据请求云函数设计及实现 代码交接及整体架构搭建 叶学涛 进行代码优化 和队友进行交接 ...

  4. 20162326 齐力锋 2016-2017-2 《程序设计与数据结构》 MySort.java 实验博客

    实验代码学习编程中的问题及解决方法 代码运行成功截图 首次代码运行出现的问题截图 问题1:无法从静态上下文中引用非静态方法 问题1解决方法及思考: split方法是非静态方法,需要借助对象来调用.我查 ...

  5. 201771030125-王英雪 实验一 软件工程准备一<构建之法与博客首秀>

    项目 内容 班级博客 点我呀! 作业要求 看这里! 课程学习目标 提出三个问题并以写博客的形式记录下来 参考文献 现代软件工程讲义 三个问题 问题一:软件工程究竟是什么? 在现代软件工程讲义一书中给出 ...

  6. 201771010117—马兴德—实验一 软件工程准备—掌握博客中MarkDown的使用以及通读《现代软件工程—构建之法》的总结

    实验一 软件工程的前期准备工作 在前期的准备工作以及老师上课的讲解中,我懂得了"软件=程序+软件工程"这句话的基本含义,以前只是对软件工程有一个很浅显的概念,现在在读了<现代 ...

  7. 201771030103-陈正丽 实验一 软件工程准备—<快速浏览 邹欣老师博客—读后感>

    项目 内容 <软件工程> 代祖华老师博客 作业要求 邹欣老师博客 学习目标 具体目标 在大概阅读邹欣老师的博客时,发现老师写了关于很多方面的内容,有基础的也有比较深奥的,这次阅读过程中主要 ...

  8. 201771030121-王国伟 实验一 软件工程准备—<问题提出与博客首秀>

    项目 内容 课程班级博客链接 https://edu.cnblogs.com/campus/xbsf/nwnu2020SE 本次作业要求链接 https://www.cnblogs.com/nwnu- ...

  9. php第一次实验个人博客网站的设计编写①

    先上效果图: 网页代码:index.html <!DOCTYPE html> <html lang="en"> <head>     <m ...

随机推荐

  1. css3动画总结

  2. yml格式

    是什么? yml文件扩展名是YAML的缩写,YAML于2001年出现,是一种数据描述语言,和xml类似 为什么用它? 我们在做javaweb项目的时候最常见的就是.xml配置文件和properitie ...

  3. jquery - 实例1

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="text2.aspx.cs& ...

  4. HTML5表单之Input 类型- Date Pickers(日期选择器)

    HTML5 拥有多个可供选取日期和时间的新输入类型: date-选取日.月.年 month-选取月.年 week-选取周和年 time-选取时间(小时和分钟) datetime-选取时间.日.月.年( ...

  5. [水煮 ASP.NET Web API2 方法论](1-5)ASP.NET Web API Scaffolding(模板)

    问题 我们想快速启动一个 ASP.NET Web API 解决方案. 解决方案 APS.NET 模板一开始就支持 ASP.NET Web API.使用模板往我们的项目中添加 Controller,在我 ...

  6. gulp之压缩css,less转css,浏览器实时刷新【原创】

    gulp入门 gulp浏览器实时同步 首先要下载对应的插件包: gulp-less包:cnpm install gulp-less --save-dev gulp-connect包:cnpm inst ...

  7. CentOS7.5***

    一.借助谷歌上网助手 二.用ss来实现*** 下载工具 sudo yum install shadowsocks-libev 修改配置文件 sudo chmod 777 /etc/shadowsock ...

  8. nginx gzip压缩

    gzip压缩作用:将响应报⽂发送⾄客户端之前可以启⽤压缩功能,这能够有效地节约带宽,并提⾼响应⾄客户端的速度,压缩会消耗nginx的cpu性能 gzip压缩可以配置http,server和locati ...

  9. centos7 mariaDB安装

    参考:http://www.linuxidc.com/Linux/2016-03/128880.htm

  10. Eclipse IDE下的Spring框架使用简单实例

    Eclipse IDE下的Spring框架使用简单实例 1 准备Java jdk安装. Eclipse软件安装.根据系统安装32/64版本,选择Eclipse IDE for Java Develop ...