常用类和集合框架-----Java中字符串的应用

文章介绍了Java中String的基本操作,如拼接、查找、修改等,并强调String是不可变的。然后讨论了StringBuilder和StringBuffer类,用于可变字符串,其中StringBuilder效率更高但非线程安全,而StringBuffer是线程安全的。还通过示例展示了字符串相等的比较原则。
摘要由CSDN通过智能技术生成

String常用操作

1) 拼接: 使用+运算符。

2) 查找类:

charAt(int index),查找指定下标的字符。

indexOf(),查找指定的字符、字符串在原字符串中第一次出现的下标位置,找不到返回-1。

lastIndexOf(),查找指定的字符、字符串在原字符串中最后第一次出现的下标位置,找不到返回-1。

startsWith(),判断当前字符串是否以指定的字符串开始。

endsWith(),判断当前字符串是否以指定的字符串结束。

3) 修改类:字符串是常量,不可修改的,所有的修改操作都会创建一个新的字符串。

subString(),截取字符串,

replace(),替换字符、字符串。

toUpperCase(),将所有字母全部变成大写。

toLowerCase(),将所有字母全部变成小写。

4) 长度:length(),获取字符串中字符的数量。

5) 比较:equals(),比较两个字符串是否表示的是相同的字符序列。

StringBuilder类

StringBuilder类是用来表示可变字符串的,表示字符序列的数组不是final,当StringBuilder中的字符数量超出容量时,字符序列数组会自动扩容。

源码研究:

1) 无参构造方法,创建的可变字符串初始容量是16。

2) 有参数构造,可以指定初始容量。

3) 如果传递的是字符串,初始容量=字符串的长度+16。

4) 当追加字符序列,如果容量不够,会扩容。

扩容容量 = 2n + 2; (n<<1 + 2) n代表扩容前的容量大小。

如果还不够,扩容容量 = 最小容量需求。

StringBuffer类

功能与StringBuilder基本一致,除了这个类是线程安全的。效率略低。

在每一个操作方法前加synchronized关键字。

String str1 = "Java";
String str2 = "Java";

System.out.println(str1.equals(str2));

System.out.println(str1 == str2); // str1 与str2 指向同一个对象。
String str3 = new String("Java"); // new是去堆中创建一个新的对象。
System.out.println(str1 == str3); // 指向不同的对象 

String str4 = "Ja" + "va";		  // 纯常量的运算在编译时运算,str4 = "Java";
System.out.println(str1 == str4);
String str5 = "Ja";
String str6 = str5 + "va";        // 不是纯常量的运算,只能在运行时执行。
								  // 这里会创建一个新的对象 
System.out.println(str1 == str6); //

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值