字符串类的特点
- 一致性 在任何平台上都能保证字符串本身和字符串操作是一致的,对于网络环境而言相当重要。
- 不可派生性 二者皆为final类,不可派生子类
- 健壮性 两种类在运行时都要进行严格的边界检查,可以自动捕获异常。
补充:
String[] str1=str2.split("aa") //将字符串按照aa拆分
String与StringBuffer类的不同创建方式
//字符串的翻转
pbulic class text{
public static void main(String[] args){
String str="This is a test String";
StringBuffer stringBuffer=new StringBuffer(str);
System.out.println("正常字符串"+str);
System.out.println("反转字符串"+stringBuffer.reverse());
}
}
注意 reverse 为StringBuffer类的方法
//运行结果
正常字符串This is a test String
反转字符串gnirtS tset a si sihT
StringBuffer有3种构造方法 String有9中构造方法 下面是方法的演示
pbulic class text{
public static void main(String[] args){
byte b[]= {'A',' ','b','y','t','e',' ','a','r','r','y'};
char c[]= {'A',' ','c','h','a','r',' ','a','r','r','y'};
StringBuffer b1,b2,b3;
String s1,s2,s3,s4,s5,s6 = null,s7 = null,s8,s9;
b1=new StringBuffer(); //创建一个空的StringBuffer对象
b2=new StringBuffer(10); //创建一个长度为10的StringBuffer对象
b3=new StringBuffer("A string buffer"); //以字符串为参数创建StringBuffer对象
s1=new String(); //创建一个空的String对象
s2=new String("A String"); //以字符串为参数创建String对象
s3=new String(b3); //将StringBuffer转化为String
s4=new String(b); //以字节数组b为参数创建String对象,并将8为位字节自动转变为16位字符
s5=new String(b,2,4); //从b的第三位开始向后取四位创建字符串
try {//如果下面引号中的编码不存在就会抛出异常
s6=new String(b,2,10,"GBK"); //同s5,将8位字节自动转化为GBK字符集编码
s7=new String(b,"GBK"); //同s4,将8位字节自动转化为GBK字符集编码
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
s8=new String(c); //以字符数组c为参数创建String对象
s9=new String(c,2,4); //从c的第三位取四个元素为参数创建String对象
System.out.println("b1="+b1);
System.out.println("b2="+b2);
System.out.println("b3="+b3);
System.out.println("s1="+s1);
System.out.println("s2="+s2);
System.out.println("s3="+s3);
System.out.println("s4="+s4);
System.out.println("s5="+s5);
System.out.println("s6="+s6);
System.out.println("s7="+s7);
System.out.println("s8="+s8);
System.out.println("s9="+s9);
}
}
运行结果
b1=
b2=
b3=A string buffer
s1=
s2=A String
s3=A string buffer
s4=A byte array
s5=byte
s6=byte array
s7=A byte array
s8=A char array
s9=char
移除指定字符串
public static void main(String[] args){
//从 feitianbenyue 中移除 tian
String str = "feitianbenyue";
String removeStr = "tian";
//System.out.println(str.replace(removeStr, ""));
System.out.println(StringUtils.remove(str, removeStr));
}
String类方法
.lenth() | 获取字符串长度 |
.concat(“a”) | 字符串连接a |
.substring(2) | 截取第2个字符后的字符 |
.substring(2,8) | 截取第2个后到第8个字符串 |
.equals(“a”) | 比较是否与a相等,返回值为布尔变量 |
.equalsIgnoreCase(“a”) | 同上但是忽略字母大小写 |
.compareTo(“a”) | 判断是否相等,返回值为int类型,如果字母序小与a,则返回值为负数,(注意:A的字母序小于a) |
.compareToIgnoreCase(“a”) | 同上,但忽略大小写 |
.copyValueOf(char[] data) | 将数组data复制到String字符串 |
.copyValueOf(char[] data,int offset,int count) | 从data的第offest位开始复制,复制count位 |
.toUpperCase() | 全部变为大写 |
.toLowerCase() | 全部变为小写 |
.indexOf(“a”) | 返回检索到第一个a的位置,若没有则为-1 |
.indexOf(“a”) | 返回检索到最后一个a的位置,若没有则为-1 |
.getBytes() | 变为8位字节数组 |
.toCharArray | 变为16字节字符数据 |
.valueOf() | 将其他数据转变为字符串 |
.valueOf(12D) | 字符串为12.0 |
.valueOf(3<2) | 字符串为false |
.valueOf(data,1,3) | 字符串为12.0(char data[ ]={‘a’,‘b’,‘c’,‘d’,‘e’,‘f’}) |
注意:String对象不能改变,实际上字符串连接是编译器用StringBuffer完成的。
StringBuffer常用方法
StrringBuffer提供的方法有些与String相同,有些与String不同,最主要的方法为append和insert
append | 将各种数据类型转化为字符串后添加(byte除外) |
insert(3,“abc”) | 将abc插入到第4位 |
学习笔记,如有错误,还请各位大佬们指出