学习String和StringBuilder和StringBuffe,三个案例代码展示实现和三者的区别,实现代码的错误。

学习String和StringBuilder和StringBuffe,三个案例代码展示实现和三者的区别,实现代码的错误。

String常用案例

	public static void main(String[] args) {
//		(1)声明一个String对象,其内容为“I am a student,I am at ccit”;
//		(2)输出字符串的长度;
//		(3)输出字符串的第一个和最后一个字符;
//		(4)输出字符串的第一个和最后一个单词;
//		(5)将其中的‘c’替换为‘C’输出; 
//		(6)输出其中的各个单词;
//		(7)判断字符串中是否包含“ma”这个单词;
//		(8)判断字符串是否以“I”开头,以“I”结尾。
	    String[] string;
		String string2="I am a student , I am at ccit";
		System.out.println(string2.length());
		System.out.println("start:"+string2.substring(0,1)+"   end:"+string2.substring(string2.length()-1));
		System.out.println(string2.substring(0,string2.indexOf(" ")));
		System.out.println(string2.substring(string2.lastIndexOf(" ")+1));
//		System.out.println(string2.replaceAll("c", "C"));
		System.out.println(string2.replace("c", "C"));
		string=string2.split(" ");
		for(String s:string){
			System.out.println(s);
		}
		System.out.println(string2.indexOf("ma"));
		System.out.println(string2.startsWith("I"));
		System.out.println(string2.endsWith("I"));
	}
29
start:I   end:t
I
ccit
I am a student , I am at CCit
I
am
a
student
,
I
am
at
ccit
-1
true
false

StringBuilder实现 添加,修改,删除,查询

public static void main(String[] args) {
//		StringBuilder实现 添加,修改,删除,查询
		StringBuilder stringBuilder=new StringBuilder();
		stringBuilder.append("I");
		stringBuilder.append(" am");
		stringBuilder.append(" a");
		stringBuilder.append(" student");
		stringBuilder.append("and person");
		System.out.println(stringBuilder);
		stringBuilder.insert(0, "beacase");//添加,index=0
		stringBuilder.replace(0, 1, "B");//修改,第一个b改为B
		System.out.println(stringBuilder);

		stringBuilder.delete(0, 7);//删除0到6的位置的字符
		System.out.println(stringBuilder);
		System.out.println(stringBuilder.reverse());//顺序对调
		stringBuilder.setCharAt(0, 'f');//修改,第一个n改为f
		System.out.println(stringBuilder);


I am a studentand person
BeacaseI am a studentand person
I am a studentand person
nosrep dnatneduts a ma I
fosrep dnatneduts a ma I


	

StringBuffer来完成.打印由7,8,9三个数组成的三位数,要求该三位数中任意两位数字不能相同;打印格式: 各不相同的三位数字以空格分隔,如789 798 879 897 978 987。注:要求使用StringBuffer来完成

StringBuffer stringBuffer=new StringBuffer(100);
		int[] s={7,8,9};
		for(int i=0;i<s.length;i++){
			for(int j=(i+1)%s.length,k=1;k<s.length;k++,j++){
				if((j+1)%s.length==i){
					j=(j)%s.length;
					stringBuffer.append(s[i]+""+s[j]+""+s[(j+2)%s.length]+"  ");
				}else{
				stringBuffer.append(s[i]+""+s[j]+""+s[(j+1)%s.length]+"  ");
				}
				
			}
		}
		System.out.println(stringBuffer);
		}
		789  798  897  879  978  987 

String VS StringBuffer VS StringBuilder区别

StringBuilder 和 StringBuffer 非常类似,均代表可变的字符序列,而且方法也一样
String:不可变字符序列。
StringBuilder:可变字符序列、效率高、线程不安全,适合单线程。
StringBuffer:可变字符序列、效率低、线程安全,适合多线程。
(多线程,单线程专门要花一天时间讲)
String使用陷阱:
string s=“a”; //创建了一个字符串
s=s+“b”; //实际上原来的"a"字符串对象已经丢弃了,现在又产生了一个字符串s+“b”(也就是"ab")。如果多次执行这些改变串内容的操作,会导致大量副本字符串对象存留在内存中,降低效率。如果这样的操作放到循环中,会极大影响程序的性能。

实现代码的错误

1. 使用StringBuffer 和StringBuilder不要把类名写为StringBuffer VS StringBuilder,这样不可以去调用对应的方法。
2. StringBuffer 和StringBuilde如果不分配大小,默认为16个字符的空间,可以单步调试查看空间情况,String是默认为8个字符的空间

`

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值