String类——StringBuffer(StringBuilder)(字符串缓冲区):
是一个容器,临时存储数据。(数组也是一个容器)
1.特点
1,可以存储任意类型的数据
2,长度不固定
3,无论存储什么类型的元素,最终都会变成字符串。
2.简单使用方法
//创建字符串缓冲去对象
StringBuffer sb=new StringBuffer();
//添加元素
sb.append(" ans");
3.StringBuffer 容器的常见的功能
1,在任意位置插入指定的数据
sb.insert(位置,字符串);
2,添加数据
sb.append(数据);
3,删除
sb.delete(int start位置,end);
4,替换
sb.replace(start,end,数据);
5,反转
sb.reverse();
6,修改
sb.setCharAt(index,数据);
7,设置长度
sb.setLength(长度);
长度大于当前,方格填补;长度小于当前,截取长度;
4.为何要指定缓冲区的初始容量?
只要字符串缓冲区所包含的字符长度没有超过初始容量,
就不需要创建新数组,然而超过初始容量,就会自动创建数组,
来增长数组。
当创建缓冲区的初始容量的时候,就会自动创建同长得数组。
5.StringBuilder和StringBuffer 用法一样
大多数的时候比StringBuffer快,可以提高效率
1,StringBuffer是线程安全的
2,StringBuilder是线程不安全的
3,所以说在开发中如果多线程同步的时候,用StringBuffer
通常开发的时候,使用StringBuilder,提高效率
6.补充String类实例:
查找子串在父串中的最大子串:
思路:
1,以短的串味参照。
2,由长到短来获取短串中的子串,并将获取的子串去大的串中判断是否存在
3,如果存在,已找到,返回
(大圈套小圈)
代码实现:
public String getmaxsubstring(String s1,String s2)
{
for(int i=0;i
{
for(int x=0,y=s2.length()-i;y!=s2.length();x++,y++)
{
String temp=s2.substring(x,y);
if(s1.contains(temp))
{
return temp;
}
}
}
return null;
}
7.字符串排序
思路:
1,字符串中有一个用于比较字符串大小的方法:
compareTo 该方法返回int.
代码示例:
public void sortStringArray(String[] arr){
for(int x=0;x
{
for(int y=x+1;y
{
if(arr[x].compareTo(arr[y])>0)
{
String temp=arr[x];
arr[x]=arr[y];
arr[y]=temp;
}
}
}
}