String的使用
String 知识点总结
String:
字符串,底层代码使用数组进行实现的,而且是由final修饰的。所以一旦创建,对象中的值是不可变的。
String对象的创建
- String string1=new String( );
在堆中创建一个String对象,此对象中的值为给定的参考值
2.String string=”hello world”;
这种直接保存在堆中常量池里面(为了提高使用效率,常量池里面保存的是对象的引用)。假如需要使用到此字面量的值时,系统回去常量池中去找。没有就创建对象,有就让该引用直接指向。
练习题
答案:
a1:为false的原因是s1直接给字面量创建String对象,而str通过new对象。两个对象是不同的对象所以为false;
a2:为ture的原因是s2通过字面量的方式创建对象,系统会去常量池里面找一样的字面量的引用(找到了)把hello的引用指向了s2;
a3:为false的原因是字符串的拼接是在程序的运行期进行的,所以s4是一个新的对象和s6不一样。
a4:true的原因是字面量进行拼接是系统会优化编译自动拼接,所以s5和s6指向一样。
String 方法
---方法:
length():int 获取字符串的长度(字符个数)
indexOf(int ch):int 获取指定字符在字符串中第一次出现的索引
indexOf(int ch,int fromIndex):int 从指定位置开始查找指定字符第一次出现的索引
indexOf(String subStr):int 获取指定子字符串在本字符串中第一次出现的索引
indexOf(String subStr,int fromIndex):int 从指定位置开始查找指定子字符串在当前字符串中第一次出现的索引
注:通过indexof方法查找指定字符/字符串出现的索引,如果找不到,返-1
lastIndexOf系列:
lastIndexOf(int ch):int -获取指定字符在字符串中最后一次出现的下标
lastIndexOf(int ch,int fromIndex):int-从指定位置开始反向查找指定字符最后一次出现的下标
lastIndexOf(String str):int
lastIndexOf(String str,int fromIndex):int
Trim():String 去掉开始和结尾的空格。
charAt(int index):char
其作用正好和indexOf方法相反
substring
substring(int beginIndex):String
Ps:当返回值为String类型时都是创建一个新的Sring对象。
String因为是一个不可变的字符串,所以对字符串的修改十分困难。而且会浪费大量的内存空间(String str=s1+s2+s3+s4)。
StringBuilder
定义:StringBulider底层提供了一个可变数组,所以修改内容都是在源字符串上进行不会重新创建对象(字符串的拼接都是利用StringBulider完成的)。
使用:
1. 构造方法
a) StringBuilder()
b) StringBuilder(String)放入一个String对象存入到StringBulider里面;
2. 方法:
a) append(String str):StringBuilder 拼接 注:返回的是this
b) insert(int destOffSet,String str) 插入
c) delete(int start,int end) 删除
d) replace(int strat,int end,String str) 替换
e) reverse() 将字符串倒叙输出(笔试题中如果遇到判断回文请不要这个方法,用for循环和charAt()解决)
例题:
判断一个字符串是否是回文(”上海自来水来自海上”);
代码实现:

哇咔咔,String的相关内容就到这里了。
—Solvang

浙公网安备 33010602011771号