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. ZOJ-3278 8G Island---二分第k大

    题目链接: https://cn.vjudge.net/problem/ZOJ-3278 题目大意: 给出两个数列A和B,长度分别为N,M (1<=N, M<=10^5, 1<=Ai ...

  2. nextjs-demo

    这个是根据nextjs服务端渲染做的一个小demo 关键性代码,主要是控制模态框显示隐藏 关于index页面 //index.js /* eslint-disable jsx-a11y/anchor- ...

  3. 算法——(4)哈希、hashmap、hashtable

    1. Hash 把任意长度的输入通过散列算法,变换成固定长度的输出,该输出就是散列值.拥有四个特性: 1. 拥有无限的输入域和固定大小的输出域 2. 如果输入值相同,返回值一样 3. 如果输入值不相同 ...

  4. [Python]json对象转换出错expected string or buffer python

    [问题] 今天在使用python中的json转换碰到一个问题: 错误显示: expected string or buffer json内容如下: {u'err_no': 0, u'corpus_no ...

  5. http_post_data发送数据的获取方式

    private function http_get_data($url){ $ch = curl_init($url) ; curl_setopt($ch, CURLOPT_RETURNTRANSFE ...

  6. vlc源码分析(五) 流媒体的音视频同步

    vlc播放流媒体时实现音视频同步,简单来说就是发送方发送的RTP包带有时间戳,接收方根据此时间戳不断校正本地时钟,播放音视频时根据本地时钟进行同步播放.首先了解两个概念:stream clock和sy ...

  7. 404 Note Found 队 Alpha 6

    目录 组员情况 组员1(组长):胡绪佩 组员2:胡青元 组员3:庄卉 组员4:家灿 组员5:凯琳 组员6:翟丹丹 组员7:何家伟 组员8:政演 组员9:黄鸿杰 组员10:刘一好 组员11:何宇恒 展示 ...

  8. 我的QT5学习之路(目录)

    说明:本目录内容为自己学习的心得和记录,参考资料来源于网络,学习过程中多方汲取,如有错误,欢迎指正和批评. Qt开发相关文章目录 一.我的Qt学习之路系列 1.[笔记]我的Qt学习之路(一)——浅谈Q ...

  9. ssh框架错误:org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role。

    在做ssh项目练习的时候出现问题: org.hibernate.LazyInitializationException: failed to lazily initialize a collectio ...

  10. SpringBoot读取自定义配置文件

    自定义配置文件 my-config.properties bfxy.title=bfxy bfxy.name=hello spring boot! bfxy.attr=12345 配置文件类 appc ...