Java基础篇--工具类之String、StringBuffer、StringBuilder
String
String类继承了object类,用来描述字符串。Java中定义了String类用来处理字符串,并提供了一系列操作字符串的方法,他们都封装在java.lang包中,因此不需要导入包就可以直接使用。
String类使用了final修饰符,表示该类不可以被重写。
String 类常用方法
方法 | 返回值类型 | 描述 |
length() | int | 返回字符串的长度 |
charAt(int index) | char | 返回index位置处的字符 |
substring(int beginIndex) | String | 返回从beginindex位置开始截取直到该字符串末尾 |
substring(int beginIndex,int endIndex) | String | 返回从beginindex位置开始截取直到endIndex-1位置的字串 |
concat(String str) | String | 连接字符串 |
indexOf(String str) | int | 查找匹配某字符串第一次出现的位置 |
replace(CharSequence old,CharSequence new) | String | 字符串替换 |
contains(CharSequence s) | Boolean | 是否包含该字符串 |
split(String regex) | String[] | 字符串分割 |
isEmpty() | Boolean | 判断字符串是否为空,当字符串长度为0时返回true |
trim() | String | 返回去掉字符串两端空格的新字符串 |
toLowerCase() | String | 将字符串转换为小写 |
toUpperCase() | String | 将字符串转换为大写 |
euqals(Object object) | boolean | 比较是否相等 |
字符串分割
String str = “上,中,下”;
String[] aa = str.split(“,”);
for(int i = 0; i<aa.length;i++){
System.out.println(aa[i]);
}
运行结果:
上
中
下
去除空格
String str = “ A BB C D”;
String str1 = str.trim();
System.out.println(“去除首尾空格:”+str1);
String str2 = str.replace(“ ”,””);
System.out.println(“去除所有空格:”+str2);
String str3 = str.replaceAll(“+”,””);
System.out.println(“去除所有空格:”+str3);
处理字符串中单个字符
1、借助toCharArray()和for-each
String s = “ABCDEFGHIJKLMN”;
for(char ch:s.toCharArray())
System.out.print(ch+” ”);
2、借助charAt和for循环
String s = “ABCDEFGHIJKLMN”;
for(int i=0;i<s.length();i++)
System.out.print(s.charAt(i)+” ”);
StringBuffer
StringBuffer和String不同的是,StringBuffer类是对对象自身进行操作,而String类会自动创建新的对象。
StringBuffer类的常用方法
方法 | 返回值类型 | 描述 |
append(任何类型参数) | StringBuffer | 添加内容 |
insert(int offset,任何类型参数) | StringBuffer | 任意位置插入内容 |
reverse() | StringBuffer | 字符串反转 |
replace(int start,int end,String str) | StringBuffer | 指定部分替换 |
subSequence(int start,int end) | charSequence | 返回截取的字符串,返回类型可以转换 |
delete(int start,int end) | StringBuffer | 删除指定部分内容 |
indexOf(String str) | int | 返回查找的字符串第一次出现的位置 |
euqals(Object object) | boolean | 比较是否相等 |
StringBuilder类
StringBuilder类是由java SE5引入的,也是表示字符串的类,它与StringBuffer类类似,但是他们有一个重要的区别,StringBuffer是同步的,意味着它是线程安全的,通常用于多线程;而StringBuilder不是同步的,意味着它是线程不安全的,通常用于单线程。
StringBuffer和StringBuilder的API是兼容的,在单线程程序中StringBuilder用来替换StringBuffer具有更高的效率。