20155322 2016-2017-2 《Java面向对象程序设计》第十二周课堂练习之Arrays和String单元测试
20155322 2016-2017-2 《Java面向对象程序设计》第十二周课堂练习之Arrays和String单元测试
练习目地
在IDEA中以TDD的方式对String类和Arrays类进行学习
练习要求
- 测试相关方法的正常,错误和边界情况
- TDD的方式
- 在实验二ComplexTest的基础上进行修改
练习内容
- Strings类:
- charAt
- split
- Arrays类:
- sort
- binarySearch
练习过程:
1. charAt:
- 此方法返回位于字符串的指定索引处的字符。该字符串的索引从零开始。
- 该方法的返回指定索引处char值。
- 所以为了实现单元测试,我在
Complex.java文件中添加如下代码:
//测试一
public static char String_charAt(String str, int i) {
return str.charAt(i);
}
//取测试一结果
public static char getString_charAt(String str, int i) {
return String_charAt(str, i);
}
在ComplexTest.java中添加如下代码对其进行测试:
@Test
public void testString_charAt() throws Exception {
assertEquals('d', Complex.getString_charAt(str,0));
assertEquals('g', Complex.getString_charAt(str,3));
assertEquals('n', Complex.getString_charAt(str,6));
}
这里需要用到的包为:
import java.lang.*;
测试数组为:
String str = "dangranshixuanzeyuanliangtala";
最后测试结果如下:

2.split:
- 这个方法有两个变体,并分割这个字符串围绕给定的正则表达式匹配。
- 返回由分割这个字符串围绕给定的正则表达式匹配计算字符串数组。
- 为了实现单元测试,我在
Complex.java文件中添加如下代码:
//测试二
public static String[] String_split(String str) {
String[] strsort = str.split(":");
return strsort;
}
//取测试二结果
public static String[] getString_split(String str) {
return String_split(str);
}
在ComplexTest.java中添加如下代码对其进行测试:
@Test
public void testString_split() throws Exception {
assertEquals("dang", Complex.getString_split(str2)[0]);
assertEquals("yuan", Complex.getString_split(str2)[5]);
assertEquals("liang", Complex.getString_split(str2)[6]);
}
这里需要用到的包为:
import java.lang.*;
测试数组为:
String str2 = "dang:ran:shi:xuan:ze:yuan:liang:ta:la";
最后测试结果如下:

3. sort
- 我使用的sort为
java.util.Arrays.sort(char[]), 方法字符指定数组排序按数字升序顺序。 - 此方法不返回任何值
- 为了实现单元测试,我在
Complex.java文件中添加如下代码:
//测试三
public static String[] Arrays_sort(String[] str3) {
Arrays.sort(str3);
return str3;
}
//取测试三结果
public static String[] getArrays_sort(String[] str3) {
return Arrays_sort(str3);
}
在ComplexTest.java中添加如下代码对其进行测试:
@Test
public void testgetArrays_sort() throws Exception {
//ArraysTest(str3);
assertEquals("dang", Complex.getArrays_sort(str3)[0]);
assertEquals("ta", Complex.getArrays_sort(str3)[5]);
assertEquals("xuan", Complex.getArrays_sort(str3)[6]);
}
这里需要用到的包为:
import java.util.Arrays;
测试数组为:
String[] str3 = new String[]{"dang", "ran", "shi", "xuan", "ze", "yuan", "liang", "ta", "la"};
最后测试结果如下:

4. binarySearch
- 方法搜索指定double数组,使用二进制搜索算法来指定值。该数组必须在进行此调用之前进行排序。如果不排序,则结果是不确定的。
- 此方法返回搜索键的索引,如果它包含在数组中,否则它返回(- (插入点)- 1)。插入点是在将键插入数组的那一点:第一个元素比键大,或如果阵列中的所有元素都小于指定的键的索引大于a.length。
- 为了实现单元测试,我在
Complex.java文件中添加如下代码:
//测试四
public static double[] Arrays_binarySearch(double[] str4) {
Arrays.sort(str4);
return str4;
}
//取测试四结果
public static double[] getArrays_binarySearch(double[] str4) {
return Arrays_binarySearch(str4);
}
在ComplexTest.java中添加如下代码对其进行测试:
@Test
public void testgetArrays_binarySearch() throws Exception {
//ArraysTest2(str4);
assertEquals(1, Arrays.binarySearch(Complex.getArrays_binarySearch(str4), 5.4));
assertEquals(0, Arrays.binarySearch(Complex.getArrays_binarySearch(str4), 4.6));
assertEquals(4, Arrays.binarySearch(Complex.getArrays_binarySearch(str4), 49.2));
}
这里需要用到的包为:
import java.util.Arrays;
测试数组为:
double str4[] = {5.4, 4.6, 49.2, 9.2, 35.4};
最后测试结果如下:

练习总结及git链接


练习收获:
通过这次课堂练习,使我进一步加深了对于TDD方式的理解和对使用assertEquals掌握,并且学会了charAt、split、sort、binarySearch这些方法的使用,收获良多。
20155322 2016-2017-2 《Java面向对象程序设计》第十二周课堂练习之Arrays和String单元测试的更多相关文章
- 201871010123-吴丽丽《面向对象程序设计(Java)》第十二周学习总结
201871010123-吴丽丽<面向对象程序设计(Java)>第十二周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ ...
- 201271050130-滕江南-《面向对象程序设计(java)》第十二周学习总结
201271050130-滕江南-<面向对象程序设计(java)>第十二周学习总结 项 目 内 容 这个作业属于哪个课程 https://www.cnblogs.co ...
- 201871010111-刘佳华《面向对象程序设计(java)》第十二周学习总结
201871010111-刘佳华<面向对象程序设计(java)>第十二周学习总结 实验十 集合与GUI初步 实验时间 2019-11-14 第一部分:基础知识总结 第九章知识总结 1. ...
- 201871010109-胡欢欢《面向对象程序设计(java)》第十二周学习总结
201871010109-胡欢欢<面向对象程序设计(java)>第十二周学习总结 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这 ...
- 201871010101-陈来弟《面向对象程序设计(Java)》第十二周学习总结
201871010101-陈来弟<面向对象程序设计(Java)>第十二周学习总结 实验十 集合与GUI初步 实验时间 2019-11-14 第一部分 理论部分 1.(1) 用户界面 ...
- 201871010104-陈园园 《面向对象程序设计(java)》第十二周学习总结
201871010104-陈园园 <面向对象程序设计(java)>第十二周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ ...
- 201871010105-曹玉中《面向对象程序设计(java)》第十二周学习总结
201871010105-曹玉中<面向对象程序设计(java)>第十二周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ ...
- 201871010107-公海瑜《面向对象程序设计(java)》第十二周学习总结
201871010107-公海瑜<面向对象程序设计(java)>第十二周学习总结 项目 内容 ...
- 201871010133-赵永军《面向对象程序设计(java)》第十二周学习总结
201871010133-赵永军<面向对象程序设计(java)>第十二周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ ...
随机推荐
- 020.1.2 Arrays集合工具类
内容:一些关于集合常用方法 在Java.util包里面,可以自己测试一下1.查找2.复制数组3.复制数组指定范围4.排序5.返回hash值6.数组转换成String7.数组转换成集合 Arrays.a ...
- 简单说说Spring Security 使用(附加验证码登录,自定义认证)
先看官方文档:http://docs.spring.io/spring-security/site/docs/4.0.x/reference/htmlsingle/ spring security4已 ...
- 洛谷 P4705 玩游戏
题目分析 题目要求的是: \[ \sum_{i=1}^n\sum_{j=1}^m(a_i+b_j)^x(x\in [1,T]) \] 利用二项式定理化式子, \[ \begin{aligned} &a ...
- Autorelease 性能测试
__weak NSString *string_weak_ = nil; - (void)viewDidLoad { [super viewDidLoad]; // 场景 1 NSString *st ...
- angular cli
1. 安装cnpm: npm install -g cnpm --registry=https://registry.npm.taobao.org 2. 安装angular/cli: cnpm ins ...
- php数组键值操作和数组统计函数-函数
1.数组函数//作用:提供了很多官方写的很多有用的代码段,提高编写速度 1)数组的键值操作函数 array_values();//获取数组中的值 array_keys();//获取数组中的键 in_a ...
- 剑指offer 最小的k个数 、 leetcode 215. Kth Largest Element in an Array 、295. Find Median from Data Stream(剑指 数据流中位数)
注意multiset的一个bug: multiset带一个参数的erase函数原型有两种.一是传递一个元素值,如上面例子代码中,这时候删除的是集合中所有值等于输入值的元素,并且返回删除的元素个数:另外 ...
- 切换ubuntu-18.04启动方式
默认命令行形式启动 sudo systemctl set-default multi-user.target reboot 临时使用一次图形界面进入 sudo systemctl start ligh ...
- 定义一个类Point,代表一个点,public属性有x和y,方法有显示点坐标 show(),构造函数有两个参数分别给x,y赋值,在main方法中构造两个对象,再创建一方法(getMiddle)为取两个点构成线段的中点的坐标,参数为2个点对象,调用此方法后得到一个新的点,编写Application,显示该对象的坐标值。
这个题让我更加明白了类创建对象的实质 代码中用到:1.对象作形参;2.对象作返回值 以下用代码具体分析: class Point1{ public double x; public double y; ...
- java中的序列化问题
序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化,将数据分解成字节流,以便存储在文件中或在网络上传输.可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间.序列化是 ...