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/ ...
随机推荐
- lvs安装文档
安装lvs应用模块 1.安装依赖包: [root@client lvs]# yum -y install ipvs* 2.验证本机ip_vs模块是否加载 [root@client lvs]# -.el ...
- 泛型和 Any 类型
泛型和 Any 类型 这两个类型看起来很相似,但是一定要小心两者的区别.他们区别在于 Any 类型会避开类型的检查,所以尽量少用最好不用.泛型一方面很灵活一方面也很安全,下面举个例子感受下两者的区别: ...
- Presentation 常用的承接句——技术分享、学术报告串联全场不尴尬
前言 现在即使是搞技术,做科研的,也需要在不同的场合,用ppt来做分享,做汇报,做总结. 如果国际会议,研讨会,或者在外企,国外工作,英文的presentation就更加必不可少.英语的提升需要大家从 ...
- Nexus修改admin密码及其添加用户
Nexus之所以修改密码,是为了安全起见,个人学习的话,本地windows或者虚拟机即可,外网服务器建议将密码修改复杂点,而且强烈建议端口不要8081,最好将其改为其他的.同样也是为了安全起见. 添加 ...
- shell一次性执行多条命令
1.每个命令之间用;隔开说明:各命令的执行给果,不会影响其它命令的执行.换句话说,各个命令都会执行,但不保证每个命令都执行成功. 2.每个命令之间用&&隔开说明:若前面的命令执行成功, ...
- rhel install java jdk
Linux安装JDK完整步骤 1.检查一下系统中的jdk版本 [root@localhost software]# java -version 显示: openjdk version "1. ...
- ansible copy 模块 changed false 没有变化
在分发配置文件的时候,我用命令ansible big_hosthub -m copy -a "src=/home/clouder/deploy-conf.xml dest=/home/cl ...
- 框架 Hibernate
Hibernate 在test01右键新建其他找到hibernate文件夹下的Hibernate Configuration File(cfg.xml) <?xml version=" ...
- .NET Core中NETSDK1061错误解决(转载)
NETSDK1061错误解决 在vs生成和运行都正常,发布的时候报错 .netcore控制台项目引用另一个类库 错误信息 NETSDK1061: 项目是使用 Microsoft.NETCore.App ...
- C# 中的#if、#elif、#else、#endif等条件编译符号 (转载)
这些是C#中的条件编译符号.这些指令我在项目中遇到过,查过网络,问过人(当然,既不认识大牛,也不认识小牛,所以没什么收获).今天翻看一本资料,有提到这个方面的东西,所以写下来和能看到这篇文章的人一起学 ...