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


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

    课堂上未能提交的原因

    • 首先是掌握的还不够透彻,对于代码的编写还需要有个较长的思考时间。
    • 其次一直在切换网页还有加水印还要上复制到项目文件夹传到码云,一紧张,手抖老是点到别的地方,再点回去打开就比较慢,每次编出来加水印就已经停止了,有点来不及。
  • 相关阅读:
    PostgreSQL事务特性之嵌套事务
    __attribute__((format(printf, a, b)))
    N个数依次入栈,出栈顺序有多少种?
    操作系统页面置换算法(opt,lru,fifo,clock)实现
    codeforces Round #320 (Div. 2) C. A Problem about Polyline(数学) D. "Or" Game(暴力,数学)
    基于X86平台的PC机通过网络发送一个int(32位)整数的字节顺序
    c/c++多线程模拟系统资源分配(并通过银行家算法避免死锁产生)
    Windows下使用Dev-C++开发基于pthread.h的多线程程序
    斐波那契的四种求法
    红黑树的插入
  • 原文地址:https://www.cnblogs.com/pingcpingcuo/p/6849191.html
Copyright © 2020-2023  润新知