20165334《java程序设计》第六周学习总结

学号 20165334 《Java程序设计》第6周学习总结

教材学习内容总结

第八章知识总结

String 类的常用方法

  • public boolean equals(String s):判断当前String对象的字符序列是否与参数s指定的String对象的字符序列相同
  • public boolean startsWith(String s)
    判断当前String对象的字符序列前缀是否是参数指定的String对象s的字符序列
  • . public int compareTo(String s):按字典序与参数s指定的字符序列比较大小。
    如果当前String对象的字符序列与s的相同,该方法返回值0,如果大于s的字符序列,该方法返回正值;如果小于s的字符序列,该方法返回负值。
  • public int indexOf (String str):String对象调用方法从当前String对象的字符序列的0索引位置开始检索首次出现str的字符序列的位置,并返回该位置。如果没有检索到,该方法返回的值是–1,其相关方法:
    indexOf(String s ,int startpoint)
    lastIndexOf (String s)

符串与基本数据的相互转化

      public static int parseInt(String s)
      可以将由“数字”字符组成的字符串,如“876”,转化为int型数据
例如:             int x; 
                  String s = “876"; 
                  x = Integer.parseInt(s); 

String 类的构造方法:

- String(char[]);
- String(char[],int offset,int length)//分别用字符数组中的全部字符和部分字符创建字符串对象 

字符串与字节数组

String(byte[])用指定的字节数组构造一个字符串对象。
String(byte[],int offset,int length) 用指定的字节数组的一部分,即从数组起始位置offset开始取length个字节构造一个字符串对象。

StringTokenizer类在java.util包中,有两个常用的构造方法:

  • StringTokenizer(String s):为String对象s构造一个分析器。使用默认的分隔标记,即空格符、换行符、回车符、Tab符、进纸符做分隔标记。

  • StringTokenizer(String s, String delimString对象s构造一个分析器。参数delim的字符序列中的字符的任意排列被作为分隔标记。

Console类

如果希望在键盘输入一行文本,但不想让该文本回显,即不在命令行显示,那么就需要使用java.io包中的Console类的对象来完成。首先使用System类调用console()方法返回一个Console类的一个对象,比如cons:
Console cons = System.console();
然后,cons调用readPassword()方法读取用户在键盘输入的一行文本,并将文本以一个char数组返回:char[] passwd = cons.readPassword();

泛型类声明

可以使用“class 名称<泛型列表>”声明一个类,为了和普通的类有所区别,这样声明的类称作泛型类,如:
    class People<E> 
其中People是泛型类的名称,E是其中的泛型,也就是说我们并没有指定E是何种类型的数据,它可以是任何对象或接口,但不能是基本类型数据。

Stack泛型类创建一个堆栈对象,堆栈对象常用方法:

  • public E push(E item);实现压栈操作
  • public E pop();实现弹栈操作。
  • public boolean empty();判断堆栈是否还有数据。
  • public E peek();获取堆栈顶端的数据,但不删除该数据。
  • public int search(Object data);获取数据在堆栈中的位置。

代码调试中的问题和解决过程

在本周迭代与jdb练习题: 使用C(n,m)=C(n-1,m-1)+C(n-1,m)公式进行递归编程实现求组合数C(m,n)的功能

问题1:如何实现存放n,m的问题。

解决办法:想到用二维数组存放n,m.于是先构造一个n行的二维数组用来存放组合数,通过C(n,m)=C(n-1,m-1)+C(n-1,m)发现第n行第m个数(有0行0列)就是(C(n,m))的值,于是用两个循环for(int i=0;i<=n;i++)和for(int j=0;j<=i;j++)(每行可存的数=行数)即可找到a[n][m]。

问题2:命令行如何输入n,m两个数。

之前只知道利用n=Integer.parseInt(args[0]); 实现一个数的输入。这次有点不确定如何做尝试性写成了n=Integer.parseInt(args[0]);m=Integer.parseInt(args[1]);,结果成功了。有点好奇,但是
在学习了第八章相关内容后完全理解了相关知识。

代码托管

(statistics.sh脚本的运行结果截图)

上周考试错题总结

等测试完补交

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 200/200 2/2 20/20
第二周 300/500 2/4 18/38
第三周 500/1000 3/7 22/60
第四周 300/1300 2/9 30/90
第五周 1000/1300 2/9 30/90
第六周 900/1300 2/9 30/90

参考资料

原文地址:https://www.cnblogs.com/ltl123/p/8745242.html