20155301第十二周java课程程序

内容一:在IDEA中以TDD的方式对String类和Arrays类进行学习

  • 测试相关方法的正常,错误和边界情况

  • String类

    • charAt
    • split
  • Arrays类

    • sort
    • binarySearch

1.String.charAt(i)的功能是引用字符串下标索引为i的字符,例如:

String string="fengxingck";
System.out.println(string.charAt(0));

在Junit中的测试:

String buffer="feng:xing:ck";
String[] sp=buffer.split(":");
@Test
public void testCharAt(){
assertEquals('f',buffer.charAt(0));
}

2.String.split的功能是将字符串按照原有字符串中特定的符号进行分割并返回到字符串数组当中,例如:

string2[]="feng|xing|ck".split("\\|");

在Junit中的测试:

String buffer="feng:xing:ck";
String[] sp=buffer.split(":");
@Test
public void testsplit(){
assertEquals("feng",sp[0]);
}
  • 产品代码截图:

  • 测试代码截图:

3.Arrays.sort()的功能是对数组进行升序排序,并返回到原来的数组中,例如:

int a[]={1,3,2,4,5};
for(int score:a){
System.out.print(score);
}
System.out.println();
Arrays.sort(a);
for(int score:a){
System.out.print(score);
}

测试代码:

int[] score={1,2,4,5};
@Test
public void testSort(){
Arrays.sort(score);
assertEquals(4,score[2]);
}

4.Arrays.binarySearch(a[],key)的功能是对数组a中的内容进行查找关键字key,如果有则返回关键字的下标索引,否则返回-1或者"-"(插入点)。插入点是索引键将要插入数组的那一点,即第一个大于该键的元素索引,例如:

for(int i=0;i<a.length;i++){
System.out.printf("%d的索引为:",a[i]);
System.out.println(Arrays.binarySearch(a,a[i]));;
}

测试代码:

@Test
public void testbinarySearch(){
Arrays.sort(score);
assertEquals(0,Arrays.binarySearch(score,1));
assertEquals(-5,Arrays.binarySearch(score,6));
}
  • 产品代码截图:

  • 测试代码截图:

内容二:模拟实现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 }

解答过程:

1.首先我设置了一个整形数组temp,用于存放第四列的所有数字,其次将字符串数组进行分割,由于各个字符串之间是以“:”的形式隔开的,所以用toSort[i].split("

最新文章

  1. ubuntu 安装Elasticsearch5.0(Debian包)
  2. GJM : Unity3D - NetWork - Hight Level API ( HLAPI) [转载]
  3. for memory long term update
  4. File缓存
  5. HackerRank &quot;Kruskal (MST): Really Special Subtree&quot;
  6. [4]Telerik Grid 简单使用方法
  7. IntelliJ13+tomcat+jrebel实现热部署(亲测可用)
  8. 夺命雷公狗---DEDECMS----15dedecms首页栏目列表页导航部分完成
  9. 360每日自动签到,领取积分 (java httpclient4.x)
  10. java NIO与IO的区别
  11. Memcached源码分析——hash
  12. C/C++中unsigned char和char的区别
  13. 读书笔记 effctive c++ Item 20 优先使用按const-引用传递(by-reference-to-const)而不是按值传递(by value)
  14. Swing-JPopupMenu弹出菜单用法-入门
  15. 【python】函数返回值
  16. 一起学爬虫——使用selenium和pyquery爬取京东商品列表
  17. Pythonic是什么?
  18. vue中的ajax - axios
  19. django drf 动态权限配置和动态seriaizer_class配置
  20. BZOJ2039_employ人员雇佣_KEY

热门文章

  1. grep 满足多个关键字 任意关键字 排除多个关键字
  2. canvas图形库
  3. Bean Definition从加载、解析、处理、注册到BeanFactory的过程。
  4. z-index终结者
  5. C++内存总结——开坑,随时总结添加
  6. 复习静态页面polo-360
  7. CentOS 安装jira 6.3.6
  8. 如何寫一個自定義控件/vs2010生成Dll文件并引用dll(C#)
  9. IO流操作详解
  10. numpy初始化