Arrays和String单元测试

在IDEA中以TDD的方式对String类和Arrays类进行学习

  • 测试相关方法的正常,错误和边界情况

  • String类

    • charAt
    • split
  • Arrays类

    • sort
    • binarySearch

代码的码云链接

  • 核心部分代码及注释
@Test
public void Arraytest()
{
int a[]={8,5,4,7};
Arrays.sort(a);//对字符数组进行排序,并返回到原数组中
this.assertEquals(8,a[3]);//排序后应为4,5,7,8,因此a[3]应为8.
this.assertEquals(0,Arrays.binarySearch(a,4));//用二分法进行搜索,并返回数组中的下标
this.assertEquals(-2,Arrays.binarySearch(a,6));//若没有则返回-1,或者-按升序应该插入的位置 }
@Test
public void Stringtest()
{
String e = new String("2015,5339,pczm");
assertEquals('2',e.charAt(0));//返回所指定下标(此处为0)所对应的元素
assertEquals('4',e.charAt(0));
String[] s=e.split(",");//用“,”进行分割
assertEquals("5339",s[1]);
}
  • 运行结果截图

模拟实现Linux下Sort -t : -k 2的功能。参考 Sort的实现。提交码云链接和代码运行截图。

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 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);
System.out.println();
int[] tmp=new int [toSort.length];//定义一个与tosort数组的行数相同的数组。
for(int i=0;i<toSort.length;i++) {
String[] a = toSort[i].split(":");//每行都用:分割并将分割后的结果存放于a数组中。
tmp[i] = Integer.parseInt(a[3]);//取出需要按哪一列排序的那一列,此处由题意取出第三列并将字符串剖析为int型
}
Arrays.sort(tmp);//取出的一列排序
for(int i=0;i<tmp.length;i++)//遍历tmp数组
{
for(int j=0;j<toSort.length;j++)//遍历toSort数组的行
{
String[] a = toSort[j].split(":");//按行用:分割toSort数组,存于a数组
if(tmp[i]==Integer.parseInt(a[3]))//比较已排序的tmp数组以及a数组剖析后的结果
{
System.out.println(toSort[j]);//相同时输出原数组,因为tmp数组以按指定列排序,所以完成整个数组按指定列排序
}
}
}
}
}
  • 结果截图

课堂上未能提交的原因

  • 首先是掌握的还不够透彻,对于代码的编写还需要有个较长的思考时间。
  • 其次一直在切换网页还有加水印还要上复制到项目文件夹传到码云,一紧张,手抖老是点到别的地方,再点回去打开就比较慢,每次编出来加水印就已经停止了,有点来不及。

20155339《java程序设计》第十二周课堂实践总结的更多相关文章

  1. 20155320 2016-2017-2《Java程序设计》第十二周课堂实践项目

    20155320 2016-2017-2<Java程序设计>第十二周课堂实践项目 1.修改教材P98 Score2.java, 让执行结果数组填充是自己的学号: 2.在IDEA中以TDD的 ...

  2. 《Java程序设计》第15周课堂实践总结

    <Java程序设计>第15周课堂实践总结 实践一 教材代码检查-p242 要求 在IDEA中或命令行中运行P242 StackTraceDemo2.java 代码运行结果和教材一致吗?为什 ...

  3. 《Java程序设计》第12周课堂实践总结

    <Java程序设计>第12周课堂实践总结 实践一 教材代码检查-p98 要求 修改教材P98 Score2.java, 让执行结果数组填充是自己的学号: 提交在IDEA或命令行中运行结查截 ...

  4. 201521123027 <java程序设计>第十二周作业总结

    1.本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2.书面作业 将Student对象(属性:int id, String name,int age,double ...

  5. 20155233 《Java程序设计》第十二周课堂练习总结

    20155233 <Java程序设计> 第十二周课堂练习总结 测试题目 1.修改教材P98 Score2.java, 让执行结果数组填充是自己的学号:提交在IDEA或命令行中运行结查截图, ...

  6. 20155322 2016-2017-2 《Java面向对象程序设计》第十二周课堂练习之Arrays和String单元测试

    20155322 2016-2017-2 <Java面向对象程序设计>第十二周课堂练习之Arrays和String单元测试 练习目地 在IDEA中以TDD的方式对String类和Array ...

  7. 201871010106-丁宣元 《面向对象程序设计(java)》第十二周学习总结

    201871010106-丁宣元 <面向对象程序设计(java)>第十二周学习总结 正文开头: 项目 内容 这个作业属于哪个课程 https://home.cnblogs.com/u/nw ...

  8. 20175316盛茂淞 《java程序设计》第三周课堂测试错题总结

    20175316盛茂淞 <java程序设计>第三周课堂测试错题总结 出现问题 错题总结 题目1 在Ubuntu中用自己的有位学号建一个文件,教材p87 Example4_15 1. 修改代 ...

  9. 20155207JAVA第十二周课堂练习

    20155207JAVA第十二周课堂练习 教材代码检查--P98 修改教材P98 Score2.java, 让执行结果数组填充是自己的学号 Arrays和String单元测试 在IDEA中以TDD的方 ...

随机推荐

  1. IOS 登录信息类(使用单例)

    WCUserInfo.h #import <Foundation/Foundation.h> #import "Singleton.h" @interface WCUs ...

  2. Pygame播放声音与音效

    简单学习自小甲鱼视频教学(笔记) 实现功能: 运行后自动播放背景音乐,单击左键播放音效①,单击右键播放音效②, 空格键控制暂停背景音乐与恢复背景音乐,并且实现播放图标的切换. 代码如下: import ...

  3. Java虚拟机12:虚拟机性能监控与故障处理工具

    前言 定位系统问题的时候,知识.经验是基础,数据是依据,工具是运用知识处理数据的手段.这里说的数据包括:运行日志.异常堆栈.GC日志.线程快照.堆转储快照等.经常使用适当的虚拟机监控和分析的工具可以加 ...

  4. python文件读写模式 --- r,w,a,r+,w+,a+,rb,wb

    要了解文件读写模式,需要了解几种模式的区别,以及对应指针 r : 读取文件,若文件不存在则会报错 w: 写入文件,若文件不存在则会先创建再写入,会覆盖原文件 a : 写入文件,若文件不存在则会先创建再 ...

  5. @property 装饰器

    property() 函数作用于新式类,返回属性值. class C(object): def __init__(self): self._x = None def getx(self): print ...

  6. 使用appassembler插件生成启动脚本

    appassemblermaven插件可以自动生成跨平台的启动脚本,省去了手工写脚本的麻烦,而且还可以生成jsw的后台运行程序.插件官网:http://www.mojohaus.org/appasse ...

  7. xmppframework 简介

    XMPPFramework是一个OS X/iOS平台的开源项目,使用Objective-C实现了XMPP协议(RFC-3920),同时还提供了用于读写XML的工具,大大简化了基于XMPP的通信应用的开 ...

  8. (转)Linux内核基数树应用分析

    Linux内核基数树应用分析 ——lvyilong316 基数树(Radix tree)可看做是以二进制位串为关键字的trie树,是一种多叉树结构,同时又类似多层索引表,每个中间节点包含指向多个节点的 ...

  9. 硬盘分区表知识——详解硬盘MBR

    这片文章说得很详细,原文:http://hi.baidu.com/waybq/blog/item/3b8db64bef3dc7f583025c66.html --------------------- ...

  10. Notes 20180310 : String第二讲_String的声明与创建

    1  字符串的声明与创建 学习String的第一步就是创建(声明)字符串,我们在这里之所以分为创建和声明(其实是一个意思,都是创建字符串,但两者却有本质的区别)是因为String是一个很特殊的类,它的 ...