关于本次课后的一些话

关于这次课上的关于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. perl中的lock

    #!/usr/bin/env perl -w use strict; use threads; use threads::shared; ; print "count的起始值为:$count ...

  2. JS阶段测试

    JS阶段测试 一.选择题 1.表单中的数据要提交到的处理文件由表单的( c )属性指定. A. method     B. name    C. action    D. 以上都不对 2.在CSS样式 ...

  3. ARM中断向量表与响应流程【转】

    转自:http://blog.csdn.net/honour2sword/article/details/40213417 一首先中断向量表定义在哪里?如何加载? 二 中断向量表与中断服务程序 三处理 ...

  4. 设计模式之笔记--桥接模式(Bridge)

    桥接模式(Bridge) 定义 桥接模式(Bridge),将抽象部分与它的实现部分分离,使它们都可以独立地变化. 类图 描述 Abstraction:定义抽象部分的接口,通常在这个接口里面要维护一个实 ...

  5. HTML5晃动DeviceMotionEvent事件

      关于devicemotion html5提供了几个新的DOM事件来获得设备物理方向及运动的信息,包括:陀螺仪.罗盘及加速计. 第一个DOM事件是**deviceorientation**,其提供设 ...

  6. ES6新数据结构Set让数组去重

    function unique(array){ return Array.from(new Set(array)); } var arr = ['aa','bb','cc','',1,0,'1',1, ...

  7. django 类列表实例化

    一. 创建类 from rest_framework.views import APIView class Group(APIView): def get(self,request): pass cl ...

  8. python IDE的配置

    本人使用过的两款,系统环境ubuntukylin 15.04 jupyter 主要参考:ref1 和 ref2 遇到问题: error: [I 21:48:41.947 NotebookApp] Wr ...

  9. Markdown语法简编

    [笔者按]Markdown语法的最大的特点在于原文语法少而简,内容纯文本化,且生成的版式简洁优雅.本文参考了一些网上的参考文字,经自行精简整理. 区块元素 段落和换行,标题,引用,列表,代码块,分隔线 ...

  10. vue分页tbale小荔枝

    首先,动态加载数据 <table class="table table-bordered table-condensed no_margin_bottom jyjg_tab" ...