真爱无限的知识驿站

学习积累技术经验,提升自身能力

JAVA学习-Java高级特性-String、StringBuffer、StringBuilder

Java高级特性-String、StringBuffer、StringBuilder

String

Java语言中的字符串值属于String类,虽然有其它方法表示字符串(如字符数组),但Java一般使用String类作为字符串的标准格式,Java编译器把字符串值作为Strin对象。

String对象一旦创建就不能改变。如果需要进行大量的字符串修改操作,应该使用StringBuffer/StringBuilder类或者字符数组,最终结果可以被转换成String对象。

StringBuffer

线程安全的可变字符序列。

一个类似于String的字符串缓冲区,通过某些方法调用可以改变该序列的长度和内容。

每个字符串缓冲区都有一定的容量。只要字符串缓冲区所包含的字符序列的长度没有超出此容量,就无需分配新的内部缓冲区数组。

如果内部缓冲区溢出,则此容量自动增大。

StringBuilder

从JDK 5开始,为StringBuffer类补充了一个单个线程使用的等价类,即StringBuilder.

与StringBuffer相比,通常应该优先使用StringBuilder类,因为它支持所有相同的操作,但由于它不执行同步,所以速度更快。

常用方法:

public int length()

public int capacity();

public StringBuffer append(String str)

public StringBuffer insert(int offset,String str)

public int indexOf(String str)

public int indexOf(String str,int fromIndex)

public int lastIndexOf(String str)

public StringBuffer reverse()

public String toString();

demo:

public class StringBuilderDemo
{
public static void main(String[]args)
{
//可指定容量或指定字符串,不指定时,默认为16个字符
StringBuilder sb=new StringBuilder();
sb.append("hello");
sb.append(" ");
sb.append(32);
System.out.println("长度:"+ sb.length());//长度
System.out.println("容量:"+sb.capacity());//容量
System.out.println(sb.toString());//字符串内容
sb.insert(5," world ");//插入
System.out.println(sb.toString());//字符串内容
sb.replace(5,6,"++");//把下标5~6[不包含]之间替换成指定字符串
System.out.println(sb.toString());//字符串内容
System.out.println("world下标:"+sb.indexOf("world"));
sb.reverse();//字符串反转
System.out.println("反转:"+sb.toString());
//字符数组与字符串的操作
String str = "abc f";
char[] array = new char[10];
str.getChars(0,str.length(),array,0);//把字符串填充到字符数组中
String str2 = new String(array,0,str.length());//字符数组转换为字符串
System.out.println(str2);
System.out.println("____________________");
}
}

效果:


发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Powered By Z-BlogPHP 1.7.3

Copyright 2024-2027 pukuimin Rights Reserved.
粤ICP备17100155号