当前位置: 代码迷 >> 综合 >> java中String类和StringBuffer类的使用
  详细解决方案

java中String类和StringBuffer类的使用

热度:2   发布时间:2024-01-25 11:24:38.0

1.String类

作用:在java程序中实现字符串数据存储和操作的一种API,存储在

该类中字符串数据不能被修改,而操作的都是一种副本行为。

包含的方法:

     1.获取字符数组

 

System.out.println("字符串长度"+str1.length());
char[] c=str1.toCharArray();
System.out.println("字符个数:"+c.length);

    2.获取字节数组

byte[] b=null;try {b = str1.getBytes("utf-8");} catch (UnsupportedEncodingException e) {e.printStackTrace();}

3.比较字符串内容

Boolean bl=str1.equals(str2);

4.通过字符获取所在索引

//获取字符串指定字符所在索引String str3=new String("我是一个人,同时也是一个中国人");//获取到第一个位置int a3=str3.indexOf("一");System.out.println("当前索引:"+a3);//最后出现的位置int a31=str3.lastIndexOf("一");System.out.println("最后一次出现的索引:"+a31);

5.通过索引获取指定的字符

//通过索引获取指定的字符String str4=new String("我是一个人,同时也是一个中国人");char c4=str4.charAt(4);System.out.println("当前索引位置字符:"+c4);

6.判断是否以指定字符串结尾

//获取以指定字符串结尾的判断String str5=new String("我是一个人,同时也是一个中国人");Boolean b5=str5.endsWith("中国人");

7.判断字符串内容是否为空

String str6=new String("我是一个人,同时也是一个中国人");
Boolean b6=str6.isEmpty();

8.字符串内容截取

//字符串内容截取String str7=new String("我是一个人,同时也是一个中国人");String str71=str7.substring(3, 7);System.out.println("截取的字符串:"+str71);String str72=str7.substring(5);System.out.println("截取后的:"+str72);

代码运行后结果为:

截取的字符串:个人,同
截取后的:,同时也是一个中国人

9.通过匹配字符获取字符串内容截取

//通过匹配符进行指定字符串截取String str8=new String("滔哥、浩哥、为哥、嘉姐");String[] str81=str8.split("、");  //regex:正则表达式  -->匹配符System.out.println(str81[2]);

代码运行后结果为:

为哥

字符串接收字符数组、字节数组内容

字符串的构造方法提供了几种重载方式用于接收字符数组、字节数组转换成字符串方式

2.StringBuffer

作用:可以实现字符串内容的更改。

功能:增、删、改、查

//定义一个字符串缓冲区StringBuffer sb=new StringBuffer("我是人");//增加字符串内容sb.append("中国人");sb.append("美国人");System.out.println(sb);//修改字符串内容sb.setCharAt(2, '好');System.out.println(sb);//删除sb.delete(2, 5);  //删除指定索引段的字符串System.out.println(sb);sb.deleteCharAt(4);//删除指定索引位置的字符System.out.println(sb);

代码运行后结果为:

我是人中国人美国人
我是好中国人美国人
我是人美国人
我是人美人

 

3.String和StringBuffer的区别?

String表示在创建一个字符串后,所以对字符串操作的行为都是使用副本的方式,

而StringBuffer所创建的字符串存储在缓冲区中,所有的操作直接对原始字符串进行

操作。