String、StringBuffer和StringBuilder

学习内容

StringBuffer类的概述

  • 线程安全可变字符序列
  • StringBuffer和String的区别
    • String是一个不可变的字符序列
    • StringBuffer是一个可变的字符序列

StringBuffer类的构造方法

  • public StringBuffer():无参构造方法
  • public StringBuffer(int capacity):指定容量的字符串缓冲区对象
  • public StringBuffer(String str):指定字符串内容的字符串缓冲区对象

StringBuffer的方法

  • public int capacity():返回当前容量。 理论值
  • public int length():返回长度(字符数)。 实际值

StringBuffer和String的相互转换

  • String – StringBuffer
    • 通过构造方法
    • 通过append()方法
  • StringBuffer – String
    • 通过构造方法
    • 通过toString()方法
    • 通过subString(0,length);

常见对象(把数组转成字符串)

用StringBuffer的功能实现

  • 需求:把数组中的数据按照指定个格式拼接成一个字符串
    • 例:int[] arr = {1,2,3};
      输出结果:
      “[1, 2, 3]”

StringBuilder类的概述

Java 5中被提出,用法同StringBuffer,区别线程不安全,效率更高

StringBuffer、StringBuilder的区别

  • StringBuffer是jdk1.0版本的,线程安全,效率低;
  • StringBuilder是jdk1.5版本的,线程不安全,效率高。

String、StringBuffer和StringBuilder的区别

  • String可以赋空值,StringBuffer和StringBuilder不可;
  • String值不可变,是一个不可变的字符序列,StringBuffer和StringBuilder可变,是可变的字符序列。

String的用法

按要求转换字符

  • 需求:把一个字符串的首字母转成大写,其余为小写。(只考虑英文大小写字母字符)
package com.briup.day15;

public class StringTest {
public static void main(String[] args) {
String as = "efwfqaedaqefqefdqA";
String init = (as.charAt(0) + "").toUpperCase();
String three = (as.charAt(2) + "").toUpperCase();
String last = (as.charAt(as.length() - 1) + "").toLowerCase();
String two = as.charAt(1) + "";
String first = init + two + three;
String ll = as.substring(3, as.length() - 1);
String over = first + ll + last;
System.out.println(over);
 }
}
  • 运行结果
  • 在这里插入图片描述

把数组转成字符串

  • 需求:把数组中的数据按照指定格式拼接成一个字符串
    • 举例:
      • int[] arr = {1,2,3};
    • 输出结果:
    • “[1, 2, 3]”
package com.briup.day15;

public class StringBufferTest {
	public static void main(String[] args) {
	int[] arr = {1,4,5,6};
		
	StringBuffer buffer = new StringBuffer();
	buffer.append("[");
		
	for(int i : arr) {
	buffer.append(i).append(",");
	}
		
	buffer.deleteCharAt(buffer.length()-1).append("]");
	System.out.println(buffer);
	}
}
  • 运行结果
  • 在这里插入图片描述

String的去除字符串两空格

  • String trim()
package com.briup.day15;

public class StringTest {
public static void main(String[] args) {
String as = "       ffg          ";
as = as.trim();
System.out.println(as);//去掉首尾两端的空格
 }
}
  • 运行结果
  • 在这里插入图片描述

StringBuffer的功能

StringBuffer的添加功能

  • public StringBuffer append(String str):
    • 可以把任意类型数据添加到字符串缓冲区里面,并返回字符串缓冲区本身。
public class StringBufferTest {
	public static void main(String[] args) {
	StringBuffer buffer = new StringBuffer();
	buffer.append(true)//append追加的意思
		  .append("45455")
		  .append('a');
	String string = buffer.toString();
	System.out.println(string);
		
	buffer.append("lisi");
		
	String str1 = buffer.toString();
	System.out.println(str1);
	}
}
  • 运行结果
    在这里插入图片描述
  • public StringBuffer insert(int offset,String str):
    • 在指定位置把任意类型的数据插入到字符串缓冲区里面,并返回字符串缓冲区本身

StringBuffer的删除功能

  • public StringBuffer deleteCharAt(int index):
    • 删除指定位置的字符,并返回本身
  • public StringBuffer delete(int start,int end):
    • 删除从指定位置开始指定位置结束的内容,并返回本身

StringBuffer的替换和反转功能

  • StringBuffer的替换功能
    • public StringBuffer replace(int start,int end,String str):
      • 从start开始到end用str替换
  • StringBuffer的反转功能
    • public StringBuffer reverse():
      • 字符串反转

StringBuffer的截取功能

  • StringBuffer的截取功能
    • public String substring(int start):
      • 从指定位置截取到末尾
    • public String substring(int start,int end):
      • 截取从指定位置开始到结束位置,包括开始位置,不包括结束位置
  • 注意事项
    • 注意:返回值类型不再是StringBuffer本身
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值