本节主要要求掌握,字符串的常见方法(字符串转字符数组、字符串的比较函数、提取索引位置字符、将字符串转换为一个字节数组(???),返回字符串索引、去掉字符串前面的空格、从字符串中提取子串、大小写转换、替换字符串中的子串、判断字符串首末字符)。了解 String 与 StringBuffer、String Builder 的区别。以及,Try、Catch、Throw 用以实现异常捕获的基本格式。
字符串的初始化
String str1 = "abc"; // 更节省空间
String str2 = new String("abc");
字符串转字符数组 String.toCharArray();
字符串的比较函数 String.equals(String);
提取索引位置字符 char String.charAt(int);
将字符串转换为一个字节数组 getBytes(String); ?
返回字符索引 String.indexOf(String); // 有则返回相应位置,没有则返回 -1
去掉字符串前面的空格 trim();
从字符串中提取子串 subString;
大小写转换 toLowerCase,toUpperCase;
替换字符串中的一个字符 replace
判断字符串首末字符 endwith,startwith
注:
String 型数据内容不可更改,StringBuffer、StringBuilder 型数据可以更改。
StringBuilder 在字符串缓冲区被单个线程使用的时候,速度快于 StringBuffer ,涉及线程安全的环境,优先使用StringBuffer 。
StringBuffer 的常见方法为 Insert、append。
字符串常见代码示例:
package String_Pack;
public class String_Class {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
StringBuffer myStrB = new StringBuffer();
myStrB.append("Hello");
myStrB.insert(2, "tttiii");
byte[] b = new byte[100];
// System.out.println(getBytes(myStrB));
System.out.println(myStrB.indexOf("iii"));
System.out.println(myStrB);
}
}
异常的初始化和实例化
Exc e = null; // 初始化
e = new Exc(); // 实例化
常见的异常
Try/Catch Block 异常格式
try{
; //可能出现异常的代码段
}
Catch(Exception e){
; // 捕获异常
}
finally {
; // 最终一定会执行的代码段
}
Try/Catch Block 代码示例
package Try_Catch_Pack;
class MyExc{
int a = 10;
int b = 0;
}
public class Try_Catch {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int tmp = 0;
MyExc myExc = null;
// myExc = new MyExc(); // 注释掉就是空指针异常了
try {
tmp = myExc.a/myExc.b;
System.out.println(tmp);
}
catch (NullPointerException e1) {
// TODO: handle exception
System.err.println("空指针异常"+e1);
}
catch (ArithmeticException e2) {
// TODO: handle exception
System.err.println("算术异常:"+e2);
}
finally{
System.out.println("退出!");
}
}
}
定义方法时使用 throw 关键字声明,表示方法不处理异常,只抛给调用者处理。
例子:
public void tell throw Exception { ... }
如果主方法出现了异常,则交给 JVM 处理。
Try/Catch + Throw Block 异常格式
try{
throw new Exception("实例化异常");
}
Catch (Exception e){
System.out.println(e);
}
自定义异常
自定义异常,即直接继承 Exception 类即可完成。
代码示例
package Self_Def_Exp;
class myExp extends Exception{
public myExp(String msg) {
super(msg);
}
}
public class Self_Def_Exp {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
throw new myExp("自定义异常!");
} catch (Exception e) {
// TODO: handle exception
System.out.println(e);
}
}
}
代码输出:
自定义异常类名+(输出字符串)自定义异常 。