您的位置:首页 > 编程语言 > Java开发

20155339《java程序设计》第十二周课堂实践总结

2017-05-13 16:05 316 查看

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数组以按指定列排序,所以完成整个数组按指定列排序
}
}
}
}
}


结果截图



课堂上未能提交的原因

首先是掌握的还不够透彻,对于代码的编写还需要有个较长的思考时间。

其次一直在切换网页还有加水印还要上复制到项目文件夹传到码云,一紧张,手抖老是点到别的地方,再点回去打开就比较慢,每次编出来加水印就已经停止了,有点来不及。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: