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. scala基础入门

    1.scala当中申明值和变量 scala当中的变量申明可以使用两种方式,第一种使用val来申明变量.第二种使用var来申明变量. 申明变量语法 val/var 变量名 [:变量类型] = 变量值 其 ...

  2. 在ubuntu上使用QQ的经历

    pidgin-lwqq: 项目首页:https://github.com/xiehuc/pidgin-lwqq sudo add-apt-repository ppa:lainme/pidgin-lw ...

  3. 设置python的默认编码方式为utf-8

    在python的Lib\site-packages文件夹下新建一个sitecustomize.py,然后通过sys.getdefaultencoding()获取当前的默认编码 内容为:

  4. SpringMvc+Spring+MyBatis+Maven

    使用Maven构建项目 1) 创建一个Maven的war工程 2) 在webapp/WEB-INF下创建一个web.xml文件 <?xml version="1.0" enc ...

  5. c++ 派生类的构造函数次序

    #include <iostream> using namespace std; class CFatherSum //父类Sum { public: CFatherSum(int iRe ...

  6. 面向对象的JavaScript --- 原型模式和基于原型继承的JavaScript对象系统

    面向对象的JavaScript --- 原型模式和基于原型继承的JavaScript对象系统 原型模式和基于原型继承的JavaScript对象系统 在 Brendan Eich 为 JavaScrip ...

  7. 高性能 Socket 组件 HP-Socket v3.2.1-RC3 公布

    HP-Socket 是一套通用的高性能 TCP/UDP Socket 组件,包括服务端组件.client组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统.提供 C/C+ ...

  8. [19/04/30-星期二] GOF23_行为型模式(中介者模式、命令模式、解释器模式、访问者模式)

    一.中介者模式(meditor) [中介] /*** * 抽象中介者接口和其具体实现类"经理"类 */ package cn.sxt.meditor; import java.ut ...

  9. 2019.3.6 Github学习 &Git学习

    Github学习 1.使用Github 1.1 目的 借助github托管项目代码 1.2 基本概念 仓库(Repository) 仓库的意思是:即你的项目,你想在Github上开源一个项目,那就必须 ...

  10. Python 模块化 自定义模块 (四)

    自定义模块 一个.py文件就是一个模块 创建以下三个文件: 运行test.py ,查看运行结果. #test.py print("this is test module") imp ...