String、StringBuffer和StringBuilder的各自用法

应用场景

String适用于少量的字符串操作的情况

StringBuilder适用于单线程下在字符缓冲区进行大量操作的情况

StringBuffer适用多线程下在字符缓冲区进行大量操作的情况

java中常用的String方法

1、 字符串的长度

String a="hello world!";
System.out.println(a.length());

2、取得特定下标的字符

System.out.println(a.charAt(1));

3、截取多个字符并由其他字符串接收

char[] b=new char[10];
a.getChars(0,5,b,4);
System.out.println(b);
输出结果:hello 

4、将字符串变成一个byte数组

byte c[]=a.getBytes();
System.out.println(new String(c));
输出结果:hello world!

5、将字符串变成一个字符数组

char[] d=a.toCharArray();
System.out.println(d);
输出结果:hello world!

6、比较两个字符串是否相等,前者区分大小写,后者不区分

String e="Hello World!";
System.out.println(a.equals(e));
System.out.println(a.equalsIgnoreCase(e));
输出结果:
false
true

7、判定字符串是否是特定开头或结束

System.out.println(a.startsWith("ee"));
System.out.println(a.endsWith("ld!"));
输出结果:
false
true

8、连接两个字符串

String f="你好";
System.out.println(a.concat(f));
输出结果:hello world!你好

9、截取字符串

System.out.println(a.substring(0,5));
System.out.println(a.substring(6));
输出结果:0下标开始位置,5结束位置(5-1),6开始位置到结束
hello
world!

10、前者查找一个字符或者字符串第一次出现的地方,后者查找一个字符或字符串最后一次出现的地方

System.out.println(a.indexOf("o"));
System.out.println(a.lastIndexOf("o"));
输出结果:4
7

11、替换

System.out.println(a.replace(a,f));
System.out.println(a.replace(a,"Hello"));
System.out.println(f.replace("你","大家"));
输出结果:
你好
Hello
大家好

StringBuffer和StringBuilder的方法

1、追加字符串

StringBuffer s = new StringBuffer();
s.append("sad");

2、返回指定索引位置的字符,索引从0开始

StringBuffer s = new StringBuffer();
s.append("sad");
System.out.println(s.charAt(2));

3、删除指定索引位置的字符

StringBuffer s = new StringBuffer();
s.append("sad");
s.deleteCharAt(1);
System.out.println(s);//输出为:sd

4、删除从开始索引到结束索引的字符串

StringBuffer s = new StringBuffer();
s.append("sad");
s.delete(0,1);
System.out.println(s);//输出为:ad

5、在指定索引位置之前插入字符串

StringBuffer s = new StringBuffer();
s.append("sad");
s.insert(0,'t');
System.out.println(s);//输出为:tsad

6、返回指定字符串的开始字符索引位置,还可以从某个字符索引位置开始向后匹配,没有找到匹配的就会返回-1

StringBuffer s = new StringBuffer();
s.append("aaabbb");
System.out.println(s.indexOf("ab"));//输出为:2
//还可从指定位置开始匹配
System.out.println(s.indexOf("ab",3));//输出为:-1
System.out.println(s.indexOf("tt"));//输出为:-1 

7、和indexOf()的用法一样,只不过是从后往前匹配,也支持从指定索引开始从后往前去匹配

StringBuffer s = new StringBuffer();
s.append("aaabbb");
System.out.println(s.lastIndexOf("ab"));//输出为:2
//还可从指定位置开始从后向前匹配
System.out.println(s.lastIndexOf("ab",4));//输出为:2
System.out.println(s.lastIndexOf("tt"));//输出为:-1

8、反转字符串

StringBuffer s = new StringBuffer();
s.append("aaabbb");
System.out.println(s.reverse());//输出为:bbbaaa

String、StringBuffer、StringBuilder的区别

1.从性能、速度方面
StringBuilder > StringBuffer > String

2.从线程安全的角度去看
StringBuffer是线程安全的,而StringBuilder是线程不安全的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值