十、String类
1.认识Sring类
字符串由一连串的字符组成,在Java中使用双引号""包裹表示,它可以是一个字符,也可以是一个字符序列或者由多个字符序列组成。字符串的应用非常广泛,因此Java语言提供了String类。
想要使用字符串,首先需要对其进行初始化,Java中String类中定义了三种基本初始化构造函数,如下:
String str_1=new String(); //无参数构造方法
String str_2=new String("abc"); //使用字符串作为参数的构造方法
String str_3=new String(new char[3]); //使用字符数组作为参数的构造方法
2.常用方法
·字符串查找
字符串的查询操作主要有按索引位置查询和按值查询两种,前者是通过字符的索引位置获取对应位置的值,后者是通过值来获取其对应的位置索引。
String str="Hello Java!Hello Java String!"; //定义一个字符串
System.out.println("第一个J所在的索引位置是"+str.indexOf("J"));
System.out.println("从索引位置7开始,第一个Hello的索引位置是:"+str.indexOf("Hello",1));
System.out.println("最后一个J所在的索引位置是"+str.lastIndexOf("J"));
System.out.println("最后一个Java所在的索引位置是"+str.lastIndexOf("Java"));
System.out.println("从索引位置9开始,最后一个Java所在得索引位置是"+str.lastIndexOf("Java",9));
//输出结果
//第一个J所在的索引位置是6
//从索引位置7开始,第一个Hello的索引位置是:11
//最后一个J所在的索引位置是17
//最后一个Java所在的索引位置是17
//从索引位置9开始,最后一个Java所在得索引位置是6
·字符串修改
字符串的修改在String类中只有一些简单的截取、分割和连接。
String str=" Hello Java,Hello 2022!"; //定义一个字符串
System.out.println("将,换成!:"+str.replace(",","!"));
System.out.println("将所有的Hello替换成Hi:"+str.replaceAll("Hello","Hi"));
System.out.println("将第一个H换成h:"+str.replaceAll("H","h"));
System.out.println("将字符串全部转换成大写:"+str.toUpperCase());
System.out.println("将字符串全部转换成小写:"+str.toLowerCase(Locale.ROOT));
System.out.println("去掉字符串前后的空格:"+str.trim());
System.out.println("拼接Hello Java String!字符串:"+str.concat("Hello Java String!"));
//输出结果:
//将,换成!: Hello Java!Hello 2022!
//将所有的Hello替换成Hi: Hi Java,Hi 2022!
//将第一个H换成h: hello Java,hello 2022!
//将字符串全部转换成大写: HELLO JAVA,HELLO 2022!
//将字符串全部转换成小写: hello java,hello 2022!
//去掉字符串前后的空格:Hello Java,Hello 2022!
//拼接Hello Java String!字符串: Hello Java,Hello 2022!Hello Java String!
·字符串分割
字符串其实是一组字符的集合,那么,字符串理应可以分割成一个个字符序列或是一组组字符序列。事实也正是如此:
String str="Hello Java,Hello 2022!"; //定义一个字符串
String[] strs=str.split(" "); //以空格为分割点分割字符串
int count=0;
for (String s:strs) {
System.out.println("分割后的第"+ ++count+"字符是:"+s);
}
String ss="Hi Java!";
count=0;
char[] cArr=ss.toCharArray();
for (char c:cArr) {
System.out.println("分割后的第"+ ++count+"个字符是:"+c+" ");
}
System.out.println("字符串索引从0到6的子串是:"+str.substring(0,6));
System.out.println("字符串从第一个o到第一个H的子串是:" +str.substring(str.indexOf("o"),str.lastIndexOf("H")));
System.out.println("替换字符串从第一个o到第一个H的子串中的,为!:"
+str.substring(str.indexOf("o"),str.lastIndexOf("H")).replace(",","!"));
//输出结果为:
//分割后的第1字符是:Hello
//分割后的第2字符是:Java,Hello
//分割后的第3字符是:2022!
//分割后的第1个字符是:H
//分割后的第2个字符是:i
//分割后的第3个字符是:
//分割后的第4个字符是:J
//分割后的第5个字符是:a
//分割后的第6个字符是:v
//分割后的第7个字符是:a
//分割后的第8个字符是:!
//字符串索引从0到6的子串是:Hello
//字符串从第一个o到第一个H的子串是:o Java,
//替换字符串从第一个o到第一个H的子串中的,为!:o Java!
十一、认识异常
1.什么是异常
在程序运行过程中,难免会出现一些奇奇怪怪的问题,有时通过代码很难去控制。比如:数据格式不对、网络不通畅、内存报警等。在Java中,将程序执行过程中发生的不正常行为称为异常。
Java异常可以分为运行时异常(非检测性异常)、检查型异常(非运行时异常)、和自定义异常。运行时异常不遵循处理或声明规则,大多是由于程序设计不当而引发的。通常只能在运行期才能被发现,如数组下标越界、访问空对象、类型转换异常等。这些错误完全可以通过改进程序加以克服,一般不对其进行捕获。
2.异常的捕获
异常的捕获,也就是异常的具体处理方式,主要有两种:异常声明throws以及try-catch捕获处理。
·异常声明throws
修饰符 返回值类型 方法名(参数列表) throws 异常类型1,异常类型2···{}
·try-catch捕获并处理
throws对异常并没有真正处理,而是将异常报告给抛出异常方法的调用者,由调用者处理。如果真正要对异常进行处理,就需要try-catch。语法格式如下:
try{ // 将可能出现异常的代码放在这里
}catch(要捕获的异常类型 e){ // 如果try中的代码抛出异常了,此处catch捕获时异常类型与try中抛出的异常类型一致时,或者是try中抛出异常的基类时,就会被捕获到// 对异常就可以正常处理,处理完成后,跳出try-catch结构,继续执行后序代码}
具体实现如下:
class Person implements Cloneable{
@Override
protected Object clone() throws CloneNotSupportedException {
return super.clone();
}
}
public class TestDemo {
public static void main(String[] args) {
Person person=new Person();
try { //可能会抛出异常的代码
Person person1=(Person) person.clone();
} catch (CloneNotSupportedException e) { //对捕获到的异常进行处理
e.printStackTrace();
}
}
}
耗时四天终于把JavaSE的基础知识总结完啦~希望自己可以再接再厉,坚持写博客!