字符串类的特点

  1. 一致性 在任何平台上都能保证字符串本身和字符串操作是一致的,对于网络环境而言相当重要。
  2. 不可派生性 二者皆为final类,不可派生子类
  3. 健壮性 两种类在运行时都要进行严格的边界检查,可以自动捕获异常。
补充:
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位

学习笔记,如有错误,还请各位大佬们指出