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

教材学习内容总结

第八章

1.String类

1.1构造String对象

(1)常量对象

String常量也是对象,是用双引号括起的字符序列。

(2)String对象

可以用String类声明对象并创建对象。

String类还有两个较常用的构造方法。

(1)String (char a[])用一个字符数组a创建一个String对象。

(2)String(char a[],int startIndex,int count) 提取字符数组a中的一部分字符创建一个String对象,参数startIndex和count分别指定在a中提取字符的起始位置和从该位置开始截取的字符个数。

(3)引用String常量

String常量是对象,可以将String常量的引用赋值给一个String对象。

1.2字符串的并置

String对象可以用“+”进行并置运算,即首尾相接得到一个新的String对象。

1.3String类的常用方法

(1)public int length():获取一个字符串的长度

(2)public boolean equals(String s):判断当前String对象的字符序列是否与参数s指定的String对象的字符序列相同                

(3)public boolean startsWith(String s)

判断当前String对象的字符序列前缀是否是参数指定的String对象s的字符序列。

(4)public int compareTo(String s):按字典序与参数s指定的字符序列比较大小。

如果当前String对象的字符序列与s的相同,该方法返回值0,如果大于s的字符序列,该方法返回正值;如果小于s的字符序列,该方法返回负值。

(5)public boolean contains(String s):String对象调用contains方法判断当前String对象的字符序列是否包含参数s的字符序列,例如,tom="student",那么tom.contains("stu")的值就是true,而tom.contains("ok")的值是false。

(6)public int indexOf (String str):String对象调用方法从当前String对象的字符序列的0索引位置开始检索首次出现str的字符序列的位置,并返回该位置。如果没有检索到,该方法返回的值是–1。

(7)public String substring(int startpoint):字符串对象调用该方法获得一个新的String对象,新的String对象的字符序列是复制当前String对象的字符序列中的startpoint位置至最后位置上的字符所得到的字符序列。String对象调用substring(int start ,int end)方法获得一个新的String对象,新的String对象的字符序列是复制当前String对象的字符序列中的start位置至end–1位置上的字符所得到的字符序列。

(8)public String trim() :得到一个新的String对象,这个新的String对象的字符序列是当前String对象的字符序列去掉前后空格后的字符序列。

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

Java.lang包中的Integer类调用其类方法:public static int parseInt(String s)可以将由“数字”字符组成的字符串。

可以使用String 类的类方法

public static String valueOf(byte n)

public static String valueOf(int n)

public static String valueOf(long n) 

public static String valueOf(float n)

public static String valueOf(double n)

1.5对象的字符串表示

Object类有一个public String toString()方法,一个对象通过调用该方法可以获得该对象的字符序列表示。一个对象调用toString()方法返回的String对象的字符序列的一般形式为:创建对象的类的名字@对象的引用的字符串表示。

1.6字符串与字符数组、字节数组

(1)字符串与字符数组

String 类的构造方法:

String(char[]);

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

将String对象的部分字符序列存放到数组中的方法:

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

将String对象的字符序列存放到数组中的方法:

public char[] toCharArray()

(2)字符串与字节数组

 String(byte[])用指定的字节数组构造一个字符串对象。

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

public byte[] getBytes()使用平台默认的字符编码,将当前String对象的字符序列存放到字节数组,并返回数组的引用。

public byte[] getBytes(String charsetName)使用参数指定字符编码,将当前String对象的字符序列存放到字节数组,并返回数组的引用。

(3)字符串的加密算法

使用一个String对象password的字符序列作为密码对另一个String对象sourceString的字符序列进行加密。

1.7正则表达式及字符串的替换与分解

(1)正则表达式

正则表达式是一个String对象的字符序列,该字符序列中含有具有特殊意义字符,这些特殊字符称做正则表达式中的元字符。

(2)字符串的替换

public String replaceAll(String regex,String replacement)

String对象调用public String replaceAll(String regex,String replacement)方法返回一个新的String对象,这个新的String对象的字符序列是把当前String对象的字符序列中所有和参数regex匹配的子字符序列。

(3)字符串的分解

public String[] split(String regex)使用参数指定的正则表达式regex做为分隔标记分解出其中的单词,并将分解出的单词存放在字符串数组中。

2.StringTokenizer类

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

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

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

3.Scanner类

Scanner对象

Scanner对象可以解析字符序列中的单词。

4.StringBuffer类

4.1StringBuffer类对象

3个构造方法:

StringBuffer();

StringBuffer(int size);

StringBuffer(String s);

4.2StringBuffer类的常用方法

(1)append方法

StringBuffer append(String s):将String对象s的字符序列追加到当前StringBuffer对象的字符序列中,并返回当前StringBuffer对象的引用StringBuffer append(int n):将int型数据n转化为String对象,再把该String对象的字符序列追加到当前StringBuffer对象的字符序列中,并返回当前StringBuffer对象的引用。

(2)public chat charAt(int n ):得到参数n指定的置上的单个字符。

public void setCharAt(int n ,char ch):将当前StringBuffer对象实体中的字符串位置n处的字符用参数ch指定的字符替换。

(3)StringBuffer insert(int index, String str) :将参数str指定的字符串插入到参数index指定的位置

(4)public StringBuffer reverse() :将该对象实体中的字符翻转

(5)StringBuffer delete(int startIndex, int endIndex):从当前StringBuffer对象实体中的字符串中删除一个子字符串。

(6)StringBuffer replace(int startIndex,int endIndex,String str):将当前StringBuffer对象实体中的字符串的一个子字符串用参数str指定的字符串替换。 

5.Date与Calendar类

5.1Date类

(1)使用无参构造方法

(2)使用带参数的构造方法

5.2Calendar类

使用Calendar类的static方法 getInstance()可以初始化一个日历对象。

calendar对象可以调用方法:

public final void set(int year,int month,int date)

public final void set(int year,int month,int date,int hour,int minute)

public final void set(int year,int month, int date, int hour, int minute,int second)

将日历翻到任何一个时间。

6.日期的格式化

6.1format方法

format方法:

format(格式化模式, 日期列表)

(1)格式化模式

format方法中的“格式化模式”是一个用双引号括起的字符序列(字符串),该字符序列中的字符由时间格式符和普通字符所构成。

(2)日期列表

format方法中的“日期列表”可以是用逗号分隔的Calendar对象或Date对象。

format方法默认按从左到右的顺序使用“格式化模式”中的格式符来格式“日期列表”中对应的日期,而“格式化模式”中的普通字符保留原样。

(3)格式化同一日期     

可以在“格式化模式”中使用“<”,比如:"%ty-%<tm-%<td"中的三个格式符将格式化同一日期,即含有“<”的格式符和它前面的格式符格式同一个日期。

6.2不同区域的星期格式

如果想用特定地区的星期格式来表示日期中的星期,可以用format的重载方法:

format (Locale locale,格式化模式,日期列表);

其中的参数locale是一个Locale类的实例,用于表示地域。

Locale类的static常量都是Locale对象,其中US是表示美国的static常量。

7.Math、BigInteger和Random类

7.1Math类

Math类的常用类方法:

public static long abs(double a)  返回a的绝对值。

public static double max(double a,double b) 返回a、b的最大值。

public static double min(double a,double b) 返回a、b的最小值。

public static double random()  产生一个0到1之间的随机数(不包括0和1)。

public static double pow(double a,double b) 返回a的b次幂。

public static double sqrt(double a) 返回a的平方根。

public static double log(double a)  返回a的对数。

public static double sin(double a) 返回正弦值。

public static double asin(double a)  返回反正弦值。

7.2BigInteger类

BigInteger类的常用类方法:

public BigInteger add(BigInteger val)  返回当前大整数对象与参数指定的大整数对象的和。

public BigInteger subtract(BigInteger val)返回当前大整数对象与参数指定的大整数对象的差。

public BigInteger multiply(BigInteger val)返回当前大整数对象与参数指定的大整数对象的积。

public BigInteger divide(BigInteger val)返回当前大整数对象与参数指定的大整数对象的商。

public BigInteger remainder(BigInteger val)返回当前大整数对象与参数指定的大整数对象的余。

public int compareTo(BigInteger val) 返回当前大整数对象与参数指定的大整数的比较结果,返回值是1、-1或0,分别表示当前大整数对象大于、小于或等于参数指定的大整数。

public BigInteger pow(int a)  返回当前大整数对象的a次幂。

public String toString()  返回当前大整数对象十进制的字符串表示。

public String toString(int p)  返回当前大整数对象p进制的字符串表示。

7.3Random类

Random类的如下构造方法:

public Random();

public Random(long seed);使用参数seek指定的种子创建一Random对象

随机数生成器random调用不带参数的nextInt()方法:

Random random=new Random();

random.nextInt();

返回一个0至n之间(包括0,但不包括n)的随机数 随机数生成器random调用带参数的nextInt(int m)方法(参数m必须取正整数值)。

8.数字格式化

8.1Formatter类

程序可以直接使用String类调用format方法对数字进行格式化。

(1)格式化模式 

format方法中的“格式化模式”是一个用双引号括起的字符序列(字符串),该字符序列中的字符由格式符和普通字符所构成。

(2)值列表

format方法中的“值列表”是用逗号分隔的变量、常量或表达式。

(3)格式化顺序

format方法默认按从左到右的顺序使用“格式化模式”中的格式符来格式化“值列表”中对应的值,而“格式化模式”中的普通字符保留原样。

8.2格式化整数

(1)%d,%o,%x和%格式符可格式化byte、Byte、short、Short、int、Integer、long和Long型数据。

(2)修饰符

 加号修饰符"+"格式化正整数时,强制添加上正号,。

 逗号修饰符“,”格式化整数时,按"千"分组。

(3)数据的宽度

数据的宽度就是format方法返回的字符串的长度。规定数据宽度的一般格式为“%md”,其效果是在数字的左面增加空格;或"%-md“,其效果是在数字的右面增加空格。

8.3格式化浮点数

(1)%f,%e(%E),%g(%G)和%a(%A)格式符可格式化float、Float、double和Double:

 %f 将值格式化为十进制浮点数,小数保留6位。

 %e(%E) 将值格式化为科学记数法的十进制的浮点数。

(2)修饰符

 加号修饰符"+"格式化正数时,强制添加上正号。

 逗号修饰符“,”格式化浮点数时,将整数部分按“千”分组。

(3)限制小数位数与数据的“宽度”

 "%.nf"可以限制小数的位数,其中的n是保留的小数位数。

规定宽度的一般格式为“%mf”(在数字的左面增加空格),或“%-md”(在数字的右面增加空格)。

9.Class类与Console类

9.1Class类

(1)使用Class的类方法得到一个和某类(参数className指定的类)相关的Class对象:

public static Class forName(String className) throws ClassNotFoundException。

(2)步骤(1)中获得的Class对象调用

 public Object newInstance() throws Exception,

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

使用Class对象调用newInstance()实例化一个className类的对象时,className类必须有无参数的构造方法。

9.2Console类

如果希望在键盘输入一行文本,但不想让该文本回显,即不在命令行显示,那么就需要使用java.io包中的Console类的对象来完成。

10.Pattern类与Matcher类

(1)建立Pattern对象

使用正则表达式regex作参数得到一个称为模式的Pattern类的实例pattern。

(2)得到Matcher对象

得到可以检索String对象input的Matcher类的实例matcher(称为匹配对象)。

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

主要还是概念抽象问题。

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

实际运行比较容易理解。

其他

还是要多敲代码才可以啊。

学习进度条

 

代码行数(新增/累积)

博客量(新增/累积)

学习时间(新增/累积)

重要成长

目标

2000行

10篇

80小时

 

第一周

67/67

1/1

8/8

 

 

第十四周

425/4436

1/15

7/115

 

 

参考资料

《Java2实用教程(第5版)》

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值