Java复习第三季

异常概述

在程序中,异常可能由程序员没有预料到的各种情况产生,也可能超出程序员可控范围的环境因素产生,在Java中,这种在程序运行时可能出现的一些错误被称为  “异常”。

例:

代码运行结果如下:

异常的抛出与捕捉

抛出异常:

 为了保证程序有效的执行,异常抛出后,需要对抛出的异常经行相应的处理,如果不做任何处理,程序就会被终止。

代码结果如下:

捕捉异常:

Java语言的异常捕捉由try、catch、finally 三部分组成,try用来存放可能是Java语句的异常,catch用来处理和解决异常,finally用来执行异常处理的最后部分

Java常见异常类

以下是一些常见的异常类: 

自定义异常
在Java中有许多异常,但Java系统却无法做到百分百查出异常,这时候自定义异常的作用便出来了,它可以让我们自己定义异常

自定义异常大体可分为以下几个步骤:

1.创建自定义异常类

2.在方法中通过throw关键字抛出异常

3.在当前抛出的异常的方法中处理异常

在方法中抛出异常

使用throws关键字抛出异常

throws关键字通常被应用在声明方法时,用来指定方法可能抛出的异常

使用throw关键字抛出异常

throw关键字通常用于方法体中,并抛出一个异常对象

注意:程序在执行到throw语句时立即终止

运行时异常
RuntimeException异常时程序运行中抛出的异常,java类库的每个包中都定义了异常类所有这些类都是Throwable类的子类,Throwable类派生了两个子类,分别是Exception类和Error类,Error类及其子类用来描述java运行系统中的内部错误以及资源耗尽的错误,这类错误比较严重,Exception类称为非致命性类,可以通过捕捉处理来使程序继续执行,Exception类又根据错误发生的原因分为 RuntimeException异常和除 RuntimeException异常之外的异常。

                                       异常的使用原则
java异常强制用户考虑程序的强健性和安全性,异常处理不应用来控制程序的正常流程,其主要作用是捕获程序在运行时发生的异常并进行相应处理,编写代码处理某个方法可能出现异常时,可遵循以下几条原则

1.在当前方法声明中使用try-catch语句捕获异常

2.一个方法被覆盖时,覆盖它的方法必须抛出相同的异常或者异常的子类

3.如果父类抛出多个异常,则覆盖方法必须抛出那些异常的一个子类,不能抛出新异常

10.1 String类

10.1.1 声明字符串

在Java语言中,字符串必须包含在一堆双引号("")之内。

例如:"23.23"、"ABCDE"、"你好"

可以通过以下语法格式莱声明字符串变量:

String:指定该变量为字符串类型。

str:任意有效的标识符,表示字符串变量的名称。

声明字符串变量s,代码如下 :

10.1.2创建字符串 
在Java语言中,将字符串作为对象来处理,因此可以像创建其他类对象一样来创建字符串对象。创建对象要使用类的构造方法。String类的常用构造方法如下:

1.String(char a[])

2.String(char a[],int offset,int length)

该方法提取字符数组a中的一部分创建一个字符串对象。参数offset表示开始截取字符串的位置,length表示截取字符串的长度 。

3.String(char[] value)

该构造犯法可分配一个新的String对象,使其表示字符组参数中所有元素连接的结果。

除通过以上几种使用String类的构造方法赖创建字符串变量外,还可以通过将字符串常量的引用赋值给一个字符串变量来创建字符串

10.2连接字符串

10.2.1连接多个字符串

使用“+”运算符可实现连接多个字符串的功能。“+”运算符可以连接多个String对象并产生一个新的String对象。

10.2.2连接其他数据类型

字符串也可同其他基本数据类型进行连接。如果将字符串同其他数据类型进行连接,会将其他数据类型的数据直接转换成字符串

由于运算符是有优先级的,圆括号的优先级最高,所以先被执行,然后再将结果与字符串相连

10.3获取字符串信息

10.3.1获取字符串长度

 使用String类的length()方法可获取声明的字符串对象的长度。语法如下:

str为字符串对象

获取字符串长度,代码如下:

上段代码是将字符串str的长度赋值给int型变量size,此时变量size的值为15,这表示length()方法返回的字符串的长度(包括字符串中的空格)

10.3.2字符串查找
String类提供了两种查找字符串的方法,是indexOf()与lastIndexOf方法。

1.indexOf(String s)

该方法用于但会参数字符串s在指定字符串中首次出现的索引位置

str:任意字符串对象

substr: 要搜索的字符串

查找字符a在字符串str中的索引位置,代码如下;

2.lastIndexOf(String str)

该方法用于但会指定字符串最后一次出现的索引位置

str:任意字符串对象

substr:要搜索的字符串

注意:如果lastIndexOf()方法中的参数是空字符串""(注意没有空格),则返回的结果与调用length()方法的返回结果相同。

10.3.3获取指定索引位置的字符

使用charAt()方法可将指定索引处的字符返回

str:任意字符串。

index:整型值,用于指定要返回字符的下标。 

10.4字符串操作
10.4.1获取子字符串
通过String类的substring()方法可对字符串进行截取。substring()方法被两种不同的重载形式,来满足不同的需要。

1.substring(int beginlndex)

其中,beginIndex指定从某一索引处开始截取字符串

截取字符串,代码如下:

注意:在字符串中,空格占用一个索引位置

2.substring(int beginlndex,int endIndex)

该方法返回的是从字符串某一索引位置开始截取至某一索引位置结束的子串

beginlndex:开始截取子字符串的索引位置

 endIndex:子字符在整个字符串中的结束位置

10.4.2去除空格

 trim()方法返回字符串的副本,忽略前导空格和尾部空格

str为任意字符串对象

10.4.3字符串替换

replace()方法可实现将指定的字符或字符串替换成新的字符或字符串。

target:要替换的字符或字符串

replacement:用于替换原来字符串的内容

replace()方法返回的结果是一个新的字符串,如果字符或字符串oldChar没有出现在该对象表达式中的字符串序列中,则将原字符串返回。

10.4.4判断字符串的开始与结尾

stsrtsWith()方法与endsWith()方法分别于判断是否以指定的内容开始或结束。这两个方法的返回值都为boolean类型。

1.stsrtsWith()方法

该方法用于判断当前字符串对象的前缀是否为参数指定的字符串

2.endsWith()方法

该方法用于判断当前字符串是否为以给定的子字符串结束

10.4.5判断字符串是否相等

对字符串对象进行比较不能简单地使用比较运算符“==”

布尔类型变量b的值位false,因为字符串是对象,tom、jerry是引用

1.equals()方法

如果两个两个字符串具有相同的字符和长度,则使用equals()方法进行比较时,返回true。否则,返回false。

2.equalslgnoreCase()方法

 使用equals()方法对字符串进行比较时是区分大小写的,而使用equalslgnoreCase()方法是在忽略了大小写的情况下比较两个字符串是否相等,返回结果仍为boolean类型

 10.4.6按字典顺序比较两个字符串
 compareToO方法为按字典顺序比较两个字符串,该比较基于字符串中各个字符的Unicode值,按字典顺序将String对象表示的字符序列与参数字符串所表示的字符序列进行比较。

如果按字典顺序此String对象位于参数字符串之前,则比较结果为一个负整数;如果按字典顺序此String对象位于参数字符串之后,则比较结果为一个正整数;如果这两个字符串相等,则结果为0。
注意:compareTo()方法只有在equals(Object)方法返回true时才返回0

10.4.7字母大小写转换

String 类的toLowerCase()方法可将字符串中的所有大写字母改写为小写字母,而toUpperCase()方法可将字符串中的所有小写字母改写为大写字母。

1.toLowerCase()方法

该方法将字符串中的所有大写字母转换为小写

2. toUpperCase()方法

该方法将字符串中所有小写字母转换为大写

10.4.8字符串分割

1.split(String sign)

该方法可根据给定的分割符对字符串进行拆分

2.split(String sign,int limit)

该方法可根据给定的分割符对字符串进行拆分,并限定拆分的次数

10.5格式化字符串
String 类的静态format()方法用于创建格式化的字符串。format()方法有两种重载形式。

1.format(String format,Object...args)

该方法使用指定的格式字符和参数返回一个格式化字符串,格式化后的新字符串使用本地默认的语言环境。

2.format(Local I,String format,Object...args)

该方法使用指定的语言环境、格式字符串和参数返回一个格式化字符串,格式化后的新字符串使用其指定语言环境。

语法:str.format(Local I,String format,Object...args)

I:格式化过程中要应用的语言环境。

format:格式字符串

args:格式字符串中由格式说明符引用的参数。可以为0

10.5.1日期和时间字符串格式化
1.日期格式化
常用的日期格式化转换符如下表:

2.时间格式化 

格式化时间的转换符如下表:

3.格式化常见的日期时间组合

格式化日期与时间组合的转换符定义了各种日期时间组合的格式,其中最常见的如下表:

10.5.2常规类型格式化

常规类型格式化可应用于任何参数类型,如下表:

10.6使用正则表达式 

正则表达式通常被用于判断语句中,用来检查某一字符串是否满足某一格式。

正则表达式是含有一些具有特殊意义字符的字符串,这些特殊字符称为正则表达式的元字符。

注意:在正则表达式中,“.”代表任何一个字符,因此在正则表达式中如果想使用普通意义的点字符“.”,必须使用转移字符“\".

在正则表达式中,可以使用方括号括起若干个字符来表示一个元字符,该元字符可代表方括号中的任何一个字符。

方括号元字符还可以为其他格式,如:

1. [^456]:代表4、5、6之外的任何字符

2. [a-r]:代表a~r中的任何一个字母

3. [a-zA-Z]:可表示任意一个英文字母

4. [a-e[g-z]]:代表a~e或g~z中的任何一个字母(并运算)

5. [a-o&&[def]]:代表字母d、e、f(交运算)

6. [a-d&&[^bc]]:代表字母 a、d(差运算)

在正则表达式中允许使用限定修饰符来限定元字符出现的次数。

10.7字符串生成器
创建成功的字符串对象,其长度是固定的,内容不能被改变和编译。虽然使用“+”可以达到附加新字符或字符串的目的,但“+”会产生一个新的String实例,会在内存中创建新的字符串对象。如果重复地对字符串进行修改,将极大地增加系统开销。而JDK新增了可变的字符序列StringBuilder类,大大提高了频繁增加字符串的效率。
1. append()方法 笑的常用方法如下。
该方法用于向字符串生成器中追加内容。通过该方法的多个重载形式,可实现接受任何类型的数据,如int、boolean、 char、String、double或者另一个字符串生成器等。

其中,content表示要追加到字符串生成器中的内容,可以是任何类型的数据或者其他对象。
2. insert(int offset,arg)方法
该方法用于向字符串生成器中的指定位置插入数据内容。通过该方法的不同重载形式,可实现向字符串生成器中插入int、float、char和boolean等基本数据类型的数据或其他对象。

a、 offset:字符串生成器的位置。该参数必须大于等于0,且小于等于此序列的长度。

b、arg:将插入至字符串生成器的位置。该参数可以是任何数据类型的数据或其他对象。向字符串生成器中指定的位置添加字符

3. delete(int start,int end)方法
移除此序列的子字符串中的字符。该子字符串从指定的start处开始,一直到索引end-1处的字符。如果不存在这种字符,则一直到序列尾部。如果start等于end,则不发生任何更改。

a、 start:将要删除的字符串的起点位置。
b、 end:将要删除的字符串的终点位置。
删除指定位置的子字符串

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值