JAVA学习-String字符串延展

本文探讨了JAVA中的String、StringBuffer和StringBuilder。讲解了StringBuffer的append和insert方法,以及replace方法的使用。同时对比了String的不可变性和内存消耗。提到了两种方法实现字符串延展,推荐在单线程环境下使用StringBuilder。最后,介绍了字符串操作的相关方法,如charAt、getBytes、indexOf、trim、substring、toLowerCase和toUpperCase等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

**StringBuffer:**缓冲区,本身也是操作字符串,但是他可以更改

public static void main(String[] args) {
    	StringBuffer sb=new StringBuffer();
    		sb.append("123123");
    		System.out.println(sb.toString());
    		tell(sb);
    		System.out.println(sb.toString());
    	}
    public static void tell(StringBuffer s) {
    	s.append("abvdabcd");

输出结果:
123123
123123abvdabcd

通过append方法修改StringBuffer字符串,通过toString输出

public static void main(String[] args) {
	StringBuffer sb=new StringBuffer();
	sb.append("Hello");
	sb.insert(0, "i love ");
	System.out.println(sb.toString());
	sb.replace(1, 3, "123");
	System.out.println(sb.toString());
}

输出结果:
i love Hello
i123ove Hello

通过insert方法插入字符串:(起始位,“插入的字符串”)
通过replace方法替换字符串:(起始位,终点位,“替换的字符串”)

案例:
需要输出结果:
abcd0123456789101112……99
方法一:

String a="abcd";
		for(int i=0;i<100;i++) {
			a=a+i;
		}
System.out.println(a);

此方法通过for循环,为每个a重新开辟内存空间,非常消耗内存
方法二:

StringBuffer a=new StringBuffer();
		a.append("abcd");
		for(int i=0;i<100;i++) {
			a.append(i);
	}
		System.out.println(a.toString());

StringBuilder:作为BUFFER的简易替换,被单线程使用时,建议用这个,若涉及安全,则用buffer

String延展:
String字符串内容不可更改,更改的是其地址(占用内存)

String str="12345";
	System.out.println(str.length());
    char data[]=str.toCharArray();
    for(int i=0;i<data.length;i++) {
    	System.out.print(data[i]+"  ");
    }

输出结果:
6
a 1 2 3 4 5 0

charAt()从字符串提取指定位置的字符

System.out.print (str.charAt(5));

getBytes()字符串与byte数组转换

byte bytes[]=str.getBytes();
	    for(int l=0;l<bytes.length;l++){
	    	System.out.print(new String(bytes)+"\t");
	    }

输出结果:
a12345 a12345 a12345 a12345 a12345 a12345

检索字符串中存在的字符并定位indexOf()

System.out.println(str.indexOf("a"));

去掉字符串的前后空格trim()

System.out.print(str.trim());

从字符串中提取子字符串subString()

System.out.println(str.substring(0,4));

大小写转换toLowerCase()toUpperCase()

System.out.print(str.toUpperCase());

判断字符串的开头结尾字符endsWith()startWith(),返回值为boolean类型

System.out.print(str.endsWith("1"));

替换字符串中的一个字符replace()

System.out.print(str.replace("1234", "ABCD"));
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值