String类和StringBuffer类

@Java入门基础

1.比较String类和StringBuffer类

  • 在Java中定义了String和StringBuffer两个类来封装字符串,并提供了一系列操作字符串的方法,它们都位于Java.lang包中,因此不需要导包就可以直接使用;
  • String类表示的字符串是常量,一旦创建后,内容和长度都是无法改变的。而StringBuffer表示字符容器,其内容和长度都可以随时修改。在操作字符串时,如果该字符串仅用于表示数据类型,则使用String类即可,但是如果需要对字符串中的字符进行增删操作,则使用StringBuffer类;
  • String类覆盖了Object类的equals()方法,而StringBuffer类没有覆盖Object类的equals()方法;
    例如:
     String s1 = new String(''abc'');
     String s2 = new String(''abc'');
     System.out.println(s1.equals(sb2));//打印结果为true
     StringBuffer s1 = new StringBuffer(''abc'');
     StringBuffer s2 = new StringBuffer(''abc'');
     System.out.println(s1.equals(sb2));//打印结果为false
  • String类对象可以用操作符+进行连接,而StringBuffer类对象之间不能;

    String s3 = s2+s1;                                   //合法
    System.out.println(s3);                           //打印输出ab
    StringBuffer s1 = new StringBuffer(''a'');
    StringBuffer s2 = new StringBuffer(''b'');
     StringBuffer sb3 = sb1+sb2;//编译出错

2.String类

(定义一个不可更改的常量)

  • String类的初始化
    1.使用一个字符串常量直接初始化一个String常量;

String str1 = “abc”;//创建并初始化String对象

  1. 使用String的构造方法初始化字符串对象
方法声明功能描述
String()创建一个内容为空的字符串
String(char[] value)根据指定的字符数组创建对象
String(String value)根据指定的字符内容创建对象

Example1:

public class Example1 {
	public static void main(String[] args) {
		String str1 = new String();
		String str2 = new String("abcd");
		char[] arr = new char[] {'D','E','F'};
		String str3 = new String(arr);
		System.out.println("a"+str1+"b");
		System.out.println(str2);
		System.out.println(str3);
     }
}

运行结果:
在这里插入图片描述

  • String类的常见操作
    在这里插入图片描述

Example2:


    public class test1 {
	public static void main(String[] args) {
		String s = "dfferghuklmbdfd";
		System.out.println("str.length(): "+s.length());
		System.out.println("str.charAt(0): "+s.charAt(0));
		System.out.println("lastIndex(m): "+s.lastIndexOf('m'));
        System.out.println("substring(2,4): "+s.substring(2,4));
        System.out.println("indexOf(g): "+s.indexOf('g'));
	}
}

运行结果:
在这里插入图片描述

3.StringBuffer类

*** (定义一个可更改的缓冲区)
由于字符串是常量,因此一旦创建,其内容和长度是不可改变的。如果需要对一个字符串进行修改,则只能创建新的字符串;为了便于对字符串的修改,在JDK中提供了一个StringBuffer类;
String和StringBuffer的最大区别在于它的内容和长度都是可以改变的

StringBuffer的常用方法:
方法声明功能描述
StringBuffer append(char c)添加参数到StringBuffer类中
StringBuffer insert(int offset,String str)将字符串中的offer位置插入字符串str
StringBuffer deleteCharAt(int index)移除此序列指定位置的字符
StringBuffer delete(int start,int end)删除StringBuffer对象中指定范围的字符或字符串序列
StringBuffer replace(int start,int end,String s)在StringBuffer对象中替换指定的字符或字符串序列
void setCharAt(int index,char ch)修改指定位置index处的字符序列
String toString()返回StringBuffer缓冲区中的字符串
StringBuffer reverse()将此字符序列用反转形式取代

Example3:

编写一个程序,实现字符串大小写转换并倒序输出

public class Example3 {
	public static void main(String[] args) {
		StringBuffer sb = new StringBuffer("HelloWorld");
		sb.append("zzy");
		System.out.println(sb.toString());
		String s = "HelloWorld";
		char[] arr = s.toCharArray();
		for(int i=arr.length-1;i>=0;i--) {
			if(arr[i]>=65&&arr[i]<=90) {
				System.out.print(String.valueOf(arr[i]).toLowerCase());
			}
			if(arr[i]>=97&&arr[i]<=122) {
				System.out.print(String.valueOf(arr[i]).toUpperCase());
			}
		}
	}
}

运行结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值