方法?String的分割、反转、截取方法?— day04"/>
【Java基础面试宝典】String类常用方法?String的分割、反转、截取方法?— day04
目录
String是不可变的有什么好处?
String类String常用方法
抽象类必须要有抽象方法吗?
普通类和抽象类有哪些区别?
抽象类能使用 final 修饰吗?
String的截取方法
String的分割方法
String的反转方法
String如何转成int
String中统计某个字符串出现的次数
为什么我们在使用HashMap的时候总是用String做key?
String是不可变的有什么好处?
String是不可变类有以下几个优点:
由于String是不可变类,所以在多线程中使用是安全的,我们不需要做任何其他同步操作。
String是不可变的,它的值也不能被改变,所以用来存储数据密码很安全。
因为java字符串是不可变的,可以在java运行时节省大量java堆空间。因为不同的字符串变量可以引用池中的相同的字符串。如果字符串是可变得话,任何一个变量的值改变,就会反射到其他变量,那字符串池也就没有任何意义了。
String类String常用方法
indexof(); 返回指定字符的的索引。
charAt(); 返回指定索引处的字符。
replace(); 字符串替换。• trim(); 去除字符串两端空格。
split();字符串分割,返回分割后的字符串数组。
getBytes();返回字符串 byte 类型数组。
length();返回字符串长度。
toLowerCase(); 将字符串转换为小写字母。
toUpperCase();将字符串转换为大写字母。
substring(); 字符串截取。
equals(); 比较字符串是否相等
抽象类必须要有抽象方法吗?
不需要,抽象类不一定非要有抽象方法。抽象类并没有抽象方法但完全可以正常运行。
普通类和抽象类有哪些区别?
- 普通类不能包含抽象方法,抽象类可以包含抽象方法。
- 抽象类不能直接实例化,普通类可以直接实例化。
抽象类能使用 final 修饰吗?
不能,定义抽象类就是让其他类继承的,如果定义为 final 该类就不能被继承,这样彼此就会产生矛盾,所以 final 不能修饰抽象类,如下图所示,编辑器也会提示错误信息:
String的截取方法
substring(int):有两个重载方法 第一个给它一个长度它会截取到末尾
substring(int,int)第二个是给它一个开始长度和结束长度,截取包含开始长度字符 不包含结束长度字符
String的分割方法
split:通过指定分割符将字符串分割为数组 对于一些转义字符 我们要加\才能正确分割开
String的反转方法
方法一:通过StringBuffer或StringBuilder的reverse方法来进行反转 再调用toString返回字符串
// StringBuffer reverseStringBuffer stringBuffer = new StringBuffer();stringBuffer. append("abcdefg");System. out. println(stringBuffer. reverse()); // gfedcba// StringBuilder reverseStringBuilder stringBuilder = new StringBuilder();stringBuilder. append("abcdefg");System. out. println(stringBuilder. reverse()); // gfedcba
方法二:通过String的toChartArray方法转换成字符数组 倒序循环字符数组 使用StringBuilder进行拼接
方法三:倒叙循环 使用chartAt方法 依次取出存入StringBuilder
String如何转成int
方法一:使用Integer的 parseInt 将String转成int 如果String字符串不是数字 调用parseInt 会出现类型转换异常。
方法二:使用Integer的 valueOf 将String转成Integer 再去调用Integer的intValue方法转成int
String中统计某个字符串出现的次数
使用Map来统计字符的出现次数 key存字符 value存出现次数 遍历字符串长度
使用chartAt获得字符 统计字符 如果没有出现过 字符数量为1 如果出现过字符数量+1
为什么我们在使用HashMap的时候总是用String做key?
因为字符串是不可变的,当创建字符串时,它的hashcode被缓存下来,不需要再次计算。因为HashMap内部实现是通过key的hashcode来确定value的存储位置,所以相比于其他对象更快。这也是为什么我们平时都使用String作为HashMap对象。
更多推荐
【Java基础面试宝典】String类常用方法?String的分割、反转、截取方法?— day04
发布评论