目录
在java中String并不是基本数据类型,其本质是一个类
字符串在Java程序中占据着非常重要的地位,所以掌握其中相关方法也非常重要,并且在面试中也是其中的一个重点知识内容
以下是java中String常用的方法:
一.字符串的转化
常用方法:
转换方法 | 描述 |
---|---|
string.charAt(number) | 返回字符串中索引为number 的字符。索引从0开始,所以number=0 表示字符串的第一个字符。 |
char[] test = string.toCharArray() | 将字符串中的每个字符转换为字符数组,并将结果保存在test 数组中。这样可以逐个访问和处理字符串中的字符。 |
byte[] test = string.getBytes() | 将字符串转换为字节数组。这在数据传输和网络通信中非常常见,因为字节流可以更有效地传输和处理数据。 |
案例代码:实现常用的String的转换方法
package Example;
public class javaDemo {
public static void main(String[] args) {
String test = "ok,xdm,看我看我,我是个啥b";
char a = test.charAt(5);
// 字符串中转化为字符
System.out.println(a);
char b[] = test.toCharArray();
// 字符串转化为数组
for (int i= 0;i<b.length;i++){
System.out.print(b[i]);
}
System.out.println("");
byte bbyte[] = test.getBytes();
// 字符串转化为字节
for (int i= 0;i<bbyte.length;i++){
System.out.print(bbyte[i]);
}
}
}
二.字符串的查找
常用方法:
方法 | 描述 | 返回值 |
---|---|---|
string.indexOf(str) | 从左到右开始查找字符串中第一次出现str 的位置。如果找到,返回字符所在的下标;如果没有找到,返回-1。 | 找到:字符所在的下标;未找到:-1 |
string.lastIndexOf(str) | 从右到左开始查找字符串中最后一次出现str 的位置。如果找到,返回字符所在的下标;如果没有找到,返回-1。 | 找到:字符所在的下标;未找到:-1 |
string.contains(str) | 判断字符串中是否包含子字符串str 。如果包含,返回true ;如果不包含,返回false 。 | 包含:true ;不包含:false |
案例代码:字符串的查找
package Example;
public class javaDemo {
public static void main(String[] args) {
String test = "ok,xdm,看我看我,我是个啥b";
System.out.println(test.indexOf("啥a"));
System.out.println(test.indexOf("啥b"));
System.out.println(test.contains("啥b"));
//查找字符串内是否有"啥b"
}
}
三.字符串的替换
常用方法:
方法 | 描述 |
---|---|
string.replaceFirst(oldStr, newStr) | 替换字符串中第一个匹配到的oldStr 子字符串为newStr 子字符串。 |
string.replaceAll(oldStr, newStr) | 替换字符串中所有匹配到的oldStr 子字符串为newStr 子字符串。 |
案例代码:
package Example;
public class javaDemo {
public static void main(String[] args) {
String test = "瑞克四代才是神";
String test2 = test.replaceFirst("四","五");
System.out.println(test2);
}
}
四.字符串的截取
常用方法:
方法 | 描述 |
---|---|
string.substring(startIndex) | 从指定起始索引startIndex 开始截取字符串,返回从该索引到字符串末尾的子字符串。 |
string.substring(startIndex, endIndex) | 从指定起始索引startIndex 开始截取字符串,直到结束索引endIndex 之前的位置,返回包含的子字符串。 |
案例代码: 提取跳过前两个字符的字符串
package Example;
public class javaDemo {
public static void main(String[] args) {
String test = "不要断章取义";
System.out.println(test.substring(1));
}
}
五.字符串的拆分
常用方法:
方法 | 描述 |
---|---|
string.split(delimiter) | 将字符串按照指定的分隔符delimiter 进行拆分,并返回一个字符串数组,其中包含被拆分后的子字符串。 |
案例代码:设置String数组接收一个字符串以空格为分隔符的字符串
package Example;
public class javaDemo {
public static void main(String[] args) {
String test = "房子,黑人,女朋友 归男,孩子";
String badEnding[] = test.split(" ");
for (int i=0; i<badEnding.length;i++){
System.out.println(badEnding[i]);
}
}
}
六.字符串的比较
常用方法:
方法 | 描述 |
---|---|
string.equals(str) | 比较字符串与给定的str 是否相等。返回true ,如果字符串相等;返回false ,如果字符串不相等。 |
string.equalsIgnoreCase(str) | 比较字符串与给定的str 是否相等,不区分大小写。返回true ,如果字符串相等;返回false ,如果字符串不相等。 |
案例代码:
package Example;
public class javaDemo {
public static void main(String[] args) {
String test = "abcdefg";
System.out.println(test.equals("ffffffff"));
System.out.println(test.equals("abcdefg"));
System.out.println(test.equalsIgnoreCase("ffffffff"));
System.out.println(test.equalsIgnoreCase("ABCDEFG"));
}
}
面试题:字符串之间 “==”与equals的方法的区别
1.对于基本类型,==比较的是值
2.对于引用类型,==比较的是地址
3.equals类型不能用于基本类型的比较
4.如果没有重写equals,equals就相当于 ==
5.如果重写了equals方法,equals比较的就是对象内容
七.其他类
方法 | 描述 |
---|---|
toUpperCase() | 将字符串转换为大写字母形式。 |
toLowerCase() | 将字符串转换为小写字母形式。 |
length() | 返回字符串的长度,即包含的字符个数。 |
concat(str) | 将指定字符串 str 连接到原字符串的末尾。 |
trim() | 去除字符串两端的空白字符(包括空格、制表符、换行符等),返回新字符串。 |
字符串拼接concat()与“+”区别
主要区别如下:
返回值:
concat()
方法返回一个新的字符串对象,将当前字符串与指定字符串连接起来,而符号"+"直接在原有字符串上进行修改并返回结果。内部实现:
concat()
方法使用了StringBuilder(在常用类库中)或StringBuffer来执行字符串的连接操作,而符号"+"使用StringBuilder在内部实现中完成字符串的拼接。可读性:
concat()
方法的语法比较明确,可以清楚地表达出字符串的连接操作;而符号"+"的使用更为简便和直观,可以直接将两个字符串用"+"进行连接。
面试题:String类的常用方法有哪些?
equals、length、contains、replace、split、hashcode、indexof、substring、trim、toUpperCase、toLowerCase、isEmpty等等