JAVA学习笔记七

201711671228《Java程序设计》第八章学习总结

教材学习内容总结

  经过这一周的学习,我对java的了解加深了许多。这周主要学习了第八章的内容:

  1. String类
    • String类被默认引入,可以直接使用,但是不能有子类。(final类)
    • String常量是被双引号括起的字符序列。也是一个对象。
    • 创建的String类对象,即使字符序列相同,其引用也不一样。
    • System.out.println(String对象名)输出的是其实体(字符序列),而不是其引用。(地址)
    • String类的两种构造方法

(1)String (char a[])   [eg.char a[]={‘j’,‘a’,‘v’,‘a’};]

   用字符数组创建String类对象。

(2)String(char a[],int startIndex,int count) 提取数组中的一部分作为对象,startIndex表示从第几个开始提取,count是提取几个。

    • 可以把String常量的引用赋给String对象。
    • String对象可以用加号‘+’进行并置运算  

Eg.String you=‘你’;

   String hi=‘好’;

   String hello=you+hi;     hello的序列是“你好”

    •  并置运算中,常量+常量=常量;变量+变量/常量=变量(实体+引用)。
    • 常用方法

(1)length()计算字符序列长度。

(2)equals(String s)  比较当前对象的字符序列是否与参数指定的对象的字符序列相同。

(3)startsWith(String s) 判断当前String对象的字符序列前缀是否是参数的字符序列。  

(4)startsWith(String s)判断当前String对象的字符序列后缀是否是参数的字符序列。

(5)compareTo(String s)  按字典序与参数的字符序列比较大小。相同返回0,比参数大返回正值,比参数小返回负值。

(6)contains(String s)  判断当前String对象的字符序列是否包含参数的字符序列。

(7)indexOf(String s)       从0(第一个)索引位置开始检索第一次出现参数字符的位置,并返回位置。若没有则返回-1。

   lasIndexOf(String s)    从0(第一个)索引位置开始检索最后一次出现参数字符的位置,并返回位置。若没有则返回-1。

(8)substring(int startpoint)  获得一个从参数字符序列的start位置到最后一个的字符序列。

   substring(int start,int end)  获得一个从参数字符序列的start位置到end位置的字符序列。

Eg. String a=“我喜欢你”;

String s=a.substring(1);(=喜欢你)

String d=a.substring(1,2);(=喜欢)

       (9)trim()  得到一个去掉参数序列前后空格的新字符序列。

     ⑩调用Object类中的public String toString()方法可以获得这个对象的字符串表示。   【创建对象的类名@对象的引用的字符串表示】

     11public void getChars(int start,int end,char c[],int offset)

       将当前String对象的字符序列中第start个到第end-1位置上的字符复制到数组c中(从数组的第offset个位置开始放)。必须保证数组能容纳复制过来的字符序列

     12加密算法:一个String对象password的字符序列对另一个String对象sourceString的字符序列加密。

  1. char []p=password.toCharArray[];pssword的字符序列放进数组p中
  2. p的长度为n,将加密字符序列分为多个包含n个字符的小组。将每个小组中的字符一对一和p中字符做加法运算。
  3. 揭秘方法是做减法运算。

13正则表达式:含有特殊意义字符的String对象的字符序列。

14public boolean matches(String regex)可以判断当前对象的字符序列是否和canshuregex指定的正则表达式匹配。

15public String replaceAll(String regex,String replacement)把当前对象的字符序列中所有和参数regex匹配的字符序列用参数replacement的字符序列替换后得到新的字符序列。

16public String 【】split(String regex)使用参数指定的正则表达式作为分隔标记分解出当前对象的字符序列中的单词并存放在数组中。

2、StringTokenizer类

①语言符号:字符序列中可被独立使用的单词。

②StringTokenizer类分析一个String类对象的字符序列并将其分解为语言符号。

③构造方法:

    StringTokenizer 对象名=new StringTokenizer(String s,String delim)

        为s构造分析器,用参数delim的字符序列中字符的任意排列做分隔标记

    StringTokenizer 对象名=new StringTokenizer(String s)

        为s构造分析器,用空格、换行、回车等默认的分隔标记。

  1. Scanner类
  • Scanner对象可以解析字符序列中的单词。
  1. 调用方法useDelimiter(正则表达式);
  2. Scanner对象解析操作时把与将正则表达式匹配的字符序列作为分隔标记。
  3. 如果不特定分隔标记,将默认为空白字符(空格、制表符、回行符)。
  • StringTokenizer和Scanner的区别
  1. 相同点:都可以分解字符序列中的单词。
  2. 不同点:StringTokenizer类把分解出的单词放在其对象的实体中。(较快获得单词,实体占用较多内存。)

        Scanner类仅仅存放分隔标记。速度慢但节省空间。

  1. StringBuffer类
    • StringBuffer类对象的实体内存空间可以自动改变大小,可以存放可变的字符序列。
    • StringBuffer append(String s);

 StringBuffer对象可以调用append方法追加一个字符序列。

    • public char charAt(int n);

获得当前对象位置n上的字符。

public void setChart(int n,char ch);

将当前对象位置n上的字符用ch替换(n必须非负)。

    •  StringBuffer insert(int index,String str);

将参数str指定的字符插入到参数index指定的位置并返回当前对象的引用。

    •  public StringBuffer reverse()

将该对象实体中的字符序列翻转并返回当前对象的引用。

    •  StringBuffer delete(int startIndex,int endIndex)

将位置start到end-1的字符序列删除。

    •  StringBuffer replace(int startIndex,String str)

将当前对象的字符序列的一个字符序列用参数str指定的字符序列替换。并返回当前对象的引用。

  1. Date类
    • Date类的无参数构造函数创建的对象可以获取本机的当前日期和时间
  2. Calendar类
    • 使用Calendar类的静态方法getInstance可以初始化日历对象,该对象调用set方法可以翻到任何一个日期。
    • 调用public int get(int field)可以获取有关的日期。
  3. 日期的格式化

format方法 :format(格式化模式,日期列表);

      1. 按照格式化模式返回日期列表中所含日期数据的字符串表示。
      2. 格式化模式是一个字符序列,由时间格式符和普通字符所构成。
      3. 日期列表使用逗号隔开的Calender类或Date类对象。
  1. Math类,BigInteger类,Random类
    • Math类:各类static方法(计算绝对值、最值随机数、平方根等),可用类名直         接调用。
    • BigInteger类:用于处理特别大的整数。构造方法构造一个十进制的对象。
    • Random类:构造方法创建一个对象(随机数生成器)
      1. random.nextInt():返回一个随机整数。
      2. random.nextInt(n):返回一个0到n-1之间的整数。
  2. 数字格式化
    • 数字格式化:按照指定格式得到一个字符序列。
    • Format方法
      1. 格式化模式是一个字符序列,由时间格式符和普通字符所构成。
      2. 值列表是用逗号分隔的变量、常量、表达式。
      3. 如果不想使用默认的从左到右的顺序进行格式化,可以在格式符前添加索引符号index$。
  3. Class类
    • Class类的实例可以帮助程序创建其他类的实例
      1. 使用Class的类方法得到一个和某类相关的Class对象

public static Class forName(String 某类类名)throws ClassNotFoundException

     (2)1中获得的Class对象调用方法

public Object newInstance() throws InstantiationException,

IllegalAccessException

       可以得到一个className类的对象。

  1. Pattern类与Matcher类
    • 模式匹配:检索和制定模式的字符序列。
    • 货的字符串的字符序列从哪个位置从开始到结束出现过某个子字符序列,步骤如下:
      1. 使用正则表达式regex做参数构造Pattern对象

Pattern pattern =Pattern。Compile(regex);

      1. 得到可以检索String对象的Matcher类的实例matcher。

Matcher matcher=pattern.matcher(input);

        (3)matcher对象雕像各种方法检索该String对象。

 

    

教材学习中的问题和解决过程

  1. 课本上的例题:老师在课堂上带着一行一行的看,每一行的目的都知道了,最后推出应用的运行目的。

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

 

感悟

  Java的编译过程还需要熟悉,每个知识点之间的联系需要加强理解。

学习进度条

 

 

代码行数(新增/累积)

博客量(新增/累积)

学习时间(新增/累积)

目标

4000行

20篇

300小时

第一周

9/9

1/1

10/10

第二周

19/19

1/1

8/8

第三四周

30/30

1/1

8/8

第五周

不知道例题有多少行

1/1

15/15

第六周

没数

1/1

8/8

第七周

34/34

1/1

10/10

第八周

没数

1/1

10/10

参考资料

Java实用教程(第五版)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值