关于本次课后的一些话

关于这次课上的关于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. highcharts 从后台动态改变数据

    //columnChart    图表对象,创建示例就展示了. var series = this.columnChart.series;                            whi ...

  2. 控制 Cookie 的作用范围

    默认时,网站的所有 Cookies 都一起被存储在客户端,并且所有 Cookies 连同网站的任何请求一起被发送到服务器.换句话说,网站中的每个页面都能够为网站获取所有的 Cookies.但是,你能够 ...

  3. Yii 1.1.17 二、Gii创建后台与后台登录验证

    一.用Gii创建后台模块 1.启用gii,在config/main.php 'gii' => array( 'class' => 'system.gii.GiiModule', 'pass ...

  4. Visual Studio 附加到进程调试

    Visual Studio 果然是强大的,今天第一次使用附加到进程调试的功能!但是,在使用的时候发现进不了断点... 解决方案: 1.发布的时候选择Debug,而不是Release: 2.右键项目-& ...

  5. GOLANG编译安装

    GO这个编译器搞的比较混乱,GO本身是汇编+C开发出来的,后来因为觉得自己牛逼,然后用GO语言又写了一次编译器,所以中途抛弃了C,不过这种做法好与不好很难说,go真的这么有自信用自己语言写自己的编译器 ...

  6. ICTPOS3.0 词性标注集

    Ag 形语素 形容词性语素.形容词代码为a,语素代码g前面置以A. a 形容词 取英语形容词adjective的第1个字母. ad 副形词 直接作状语的形容词.形容词代码a和副词代码d并在一起. an ...

  7. signal, sigaction,信号集合操作

    信号是与一定的进程相联系的,而建立其信号和进程的对应关系,这就是信号的安装登记. Linux主要有两个函数实现信号的安装登记:signal和sigaction.其中signal在系统调用的基础上实现, ...

  8. Android UI 设计:pixel dip dpi sp density

    1. px (pixels)像素 – 是像素,就是屏幕上实际的像素点单位. dip或dp (device independent pixels)设备独立像素,与设备屏幕有关. sp (scaled p ...

  9. 看懂sh脚本

    1 开头 程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序.在这个例子中我们使用/bin/sh来执行程序. 当编写脚本完成时 ...

  10. python 单例模式4中实现方法

    python实现单例模式的方法: 1. 使用模块 python的模块在第一次导入时会生成.pyc文件,当第二次导入时就会直接加载.pyc文件,而不会再次执行模块代码. 只需将其单独放在一个模块里,并创 ...