Java字符串类String及StringBuffer详解

字符串类的特点

  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位

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>