java–String类常用方法大全
1.字符串的替换
1. replace()
public static void main(String[] args) {
String str1 = "hello word";
String str2 = str1.replace("hello", "hi");
String str3 = str1.replace("abc", "hi");
System.out.println("str2:"+str2); //输出 hi word
System.out.println("str3"+str3); //输出 hello word(要替换的目标不存在)
}
2. replaceall()
public static void main(String[] args) {
String str1 = "hello word";
String str2 = str1.replaceAll("o", "O"); //把字符串中的 o全部替换为 O
String str3 = str1.replaceAll("123", "A");
System.out.println("str2:"+str2); //输出 hellO wOrd
System.out.println("str3"+str3); //输出 hello word(要替换的目标不存在)
}
3. replaceFirst()
public static void main(String[] args) {
String str1 = "hello word";
String str2 = str1.replaceFirst("h", "H");
String str3 = str1.replaceFirst("o", "O"); //把字符串中第一个 o替换为 O
String str4 = str1.replaceFirst("111", "H");
System.out.println("str2:"+str2); //输出 Hello word
System.out.println("str3"+str3); //输出 hellO word
System.out.println("str4"+str4); //输出 hello word(要替换的目标不存在)
}
2.字符串的拆分
1. split(String regex)
public static void main(String[] args) {
String str1 = "你见过洛杉矶1凌晨四点的1样子吗?";
String[] strs = str1.split("1");
for(String s : strs){
System.out.println("s------"+s);
}
}
2. split(String regex, int limit)
public static void main(String[] args) {
String str1 = "abc1def1ghi1";
String[] str2 = str1.split("1", 555);
for(String s2 : str2){
System.out.println("s2---"+s2);
}
String[] str3 = str1.split("1", 3);
for(String s3 : str3){
System.out.println("s3---"+s3);
}
}
3.字符串的截取
1. substring(int beginIndex)
String str1 = "abcdefghi";
String str2 = str1.substring(2); //截取下标为2(含2)
System.out.println(str2);
2. substring(int beginIndex, int endIndex)
String str1 = "abcdefghi";
String str2 = str1.substring(2,4); //从下标为2的字符开始截取,截取到下标为4的字符(含2不含4)
System.out.println(str2);
4.字符串的查找
1. contains()
String str = "Hello Word";
boolean result1 = str.contains("l");
boolean result2 = str.contains("s");
System.out.println(result1); //输出 true
System.out.println(result2); //输出 false
2. endsWith()
//此方法测试字符串是否以指定的后缀结束
String str = "Hello Word";
boolean result1 = str.endsWith("d");
boolean result2 = str.endsWith("s");
System.out.println(result1); //输出 true
System.out.println(result2); //输出 false
3. startsWith(String prefix)
//此方法测试字符串是否以指定的字符开始
String str = "Hello Word";
boolean result1 = str.startsWith("H");
boolean result2 = str.startsWith("h");
System.out.println(result1); //输出 true
System.out.println(result2); //输出 false
4. startsWith(String prefix, int offIndex)
String str = "Hello Word";
boolean result1 = str.startsWith("H",0);
boolean result2 = str.startsWith("h",0);
boolean result3 = str.startsWith("e",1);
boolean result4 = str.startsWith("l",2);
boolean result5 = str.startsWith("l",3);
System.out.println(result1); //输出 true
System.out.println(result2); //输出 false
System.out.println(result3); //输出 true
System.out.println(result4); //输出 true
System.out.println(result5); //输出 true
5. indexOf(String str)
//返回指定字符在字符串中第一次出现处的索引(下标),如果此字符串中没有这样的字符,则返回 -1
String str = "Hello Word";
int res1 = str.indexOf("e");
int res2 = str.indexOf("s");
System.out.println(res1); //输出 1
System.out.println(res2); //输出-1
6. indexOf(String str, int fromIndex)
//返回从 fromIndex 位置开始查找指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1
String str = "Hello Word";
int res1 = str.indexOf("o",5);
int res2 = str.indexOf("s");
System.out.println(res1); //输出 7
System.out.println(res2); //输出-1
7. lastindexOf(String str)
//返回指定字符在此字符串中最后一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1
String str = "Hello Word";
int res1 = str.lastIndexOf("o");
int res2 = str.indexOf("s");
System.out.println(res1); //输出 7
System.out.println(res2); //输出 -1
8. lastindexOf(String str, int fromIndex)
//从fromIndex个字符中找,返回指定字符在此字符串中最后一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1
String str = "Hello Wordollo";
int res1 = str.lastIndexOf("o",9);
int res2 = str.indexOf("s");
System.out.println(res1); //输出 7
System.out.println(res2); //输出 -1
9. charAt(int index)
//返回指定索引处的字符。索引范围为从 0 到 length() - 1
String str = "Hello Wordollo";
char str1 = str.charAt(0);
char str2 = str.charAt(6);
System.out.println(str1); //输出 H
System.out.println(str2); //输出 W
5.字符串的比较
1. equals()
String str1 = "你见过洛杉矶凌晨四点的样子吗?";
String str2 = "ABC";
String str3 = "你见过洛杉矶凌晨四点的样子吗?";
System.out.println(str1.equals(str2)); //输出 false
System.out.println(str1.equals(str3)); //输出 true
2. equalsIgnoreCase()
//不区分大小写
String str1 = "abc";
String str2 = "ABC";
System.out.println(str1.equalsIgnoreCase(str2)); //输出 true
3. compareTo(String str)
/*
*用于两种方式的比较:
* 字符串与对象进行比较
* 按字典顺序比较两个字符串
* 返回值是整型,它是先比较对应字符的大小(ASCII码顺序),如果第一个字符和参数的第一个字符不等,结束比较,返回他们之间的差值,如果第一个字符和参数的第一个字符相等,则以第二个字符和参数的第二个字符做比较,以此类推,直至比较的字符或被比较的字符有一方
* 如果参数字符串等于此字符串,则返回值 0
* 如果此字符串小于字符串参数,则返回一个小于 0 的值
* 如果此字符串大于字符串参数,则返回一个大于 0 的值
*/
String str1 = "a";
String str2 = "A";
String str3 = "bb";
String str4 = "a";
System.out.println(str1.compareTo(str2)); //输出 32
System.out.println(str1.compareTo(str3)); //输出 -1
System.out.println(str1.compareTo(str4)); //输出 0
4. compareToIgnoreCase(String str)
//按字典顺序比较两个字符串,不考虑大小写
/*
* 如果参数字符串等于此字符串,则返回值 0
* 如果此字符串小于字符串参数,则返回一个小于 0 的值
* 如果此字符串大于字符串参数,则返回一个大于 0 的值
**/
String str1 = "a";
String str2 = "A";
String str3 = "bb";
String str4 = "a";
System.out.println(str1.compareToIgnoreCase(str2)); //输出 0
System.out.println(str1.compareToIgnoreCase(str3)); //输出 -1
System.out.println(str1.compareToIgnoreCase(str4)); //输出 0
/*
* 在compareTo上返回的数据类型是int型,有如下三种返回:
* 大于:> 0
* 小于:< 0
* 等于: = 0
* compareTo对于大小的比较实际上就是对字母编码的比较
**/
6.字符串转为数组
1. 将字符串转为字节数组
- getBytes(String charsetName): 使用指定的字符集将字符串编码为 byte 序列,并将结果存储到一个新的 byte 数组中
- getBytes()使用平台的默认字符集将字符串编码为 byte 序列,并将结果存储到一个新的 byte 数组中
public static void main(String args[]) {
String Str1 = new String("runoob");
try{
byte[] Str2 = Str1.getBytes();
System.out.println( Str2 ); //输出 [B@7852e922
Str2 = Str1.getBytes( "UTF-8" );
System.out.println( Str2 ); //输出 [B@4e25154f
Str2 = Str1.getBytes( "ISO-8859-1" );
System.out.println( Str2 ); //输出 [B@70dea4e
} catch ( UnsupportedEncodingException e){
System.out.println("不支持的字符集");
}
}
2. 将字符串变为字节数组
- toCharArray() 方法将字符串转换为字符数组
public static void main(String args[]) {
String Str = new String("www.runoob.com");
System.out.println( Str.toCharArray() ); //输出 www.runoob.com
}
7.其他方法
1. 字符串长度
2. 大写转小写
3. 小写转大写
4. 去掉前后空格(中间保留)
5. 字符串连接(一般用+)
6. 将内容保存到对象池中
7. 判断是否是空字符串