start…
一、String类:
- 简述:
- String类代表不可变的字符序列,Java中所有的字符串字面值(如:“abc”)都是由此类实现的,它的字符内容存在一个字符数组value[]中。通过字面量的方式赋值,字符串值声明在常量池中, 常量池中只会声明一个不相同的值。
//通过字面值生成字符串变量:
String str = "abc";
- 常用方法:
- intern(void):返回常量池中的值
//通过关键字new生成字符串变量,这样生成会将字符串变量生成在堆空间中,然后指向常量池,通过==无法直接比较值
String str1 = new String("abc");
System.out.println(str == str1)//输出false
System.out.println(str.intern() == str1.intern()) //输出true
- boolean endsWith(String str1):判断字符串是否以指定的字符串结尾
- boolean startsWith(String str1):判断字符串是否以指定的字符串开头
- boolean contains(String str1):判断字符串中是否包含指定字符串
System.out.println(str.endsWith("c"));//输出true
System.out.println(str.startsWith("c"));//输出false
System.out.println(str.contains("b"));//输出true
- int indexOf(String str1):返回指定字符串出现的位置
- int indexOf(String str1,int fromIndex):从fromIndex下标开始检索。上种方式相当于默认0开始检索
- int lastIndexOf(String str1):从后面往前搜索,返回值和indexOf一样
- int lastIndexOf(String str1,fromIndex): 从fromIndex下标开始检索。上种方式相当于最后一个下标开始检索。
System.out.println(str.indexOf("b"));//输出1,如果没有输出-1
System.out.println(str.indexOf("b",1));
System.out.println(str.lastIndexOf("a"));//输出0
System.out.println(str.lastIndexOf("a",2));
- String replace(char ch1,char ch2):用ch2替换所有的ch1
- String replace(String str1,String str2):用str2替换所有的str1
- String replaceAll(String regex,String str2):用str2替换所有匹配的正则表达式regex
- String replaceFirst(String regex,String str2):用str2替换第一个匹配的正则表达式regex
String str = "abcabcabc"//定义一个新的str,用于之后的计算
System.out.println(str.replace('a','d'));//输出dbcdbcdbc
System.out.println(str.replace("ab","*"));//输出*c*c*c
System.out.println(str.replaceAll(".","*"));//输出*********,在正则表达式中,'.'代表一个字符
System.out.println(str.replaceFirst(".","*"));//输出*bcabcabc
- boolean matches(String regex):判断是否字符串是否匹配指定的regex
System.out.println(str.matches("..c..c..c"));//输出true
- String[] split(String regex):根据正则表达式regex分割字符串成字符串数组
- String[] split(String regex,int limit):同上,limit表示最多划分的个数
String[] strArr = str.split("b");
for(String i : strArr){
System.out.print(i + " ");//输出a ca ca c
}
String[] strArr = str.split("b",3);
for(String i : strArr){
System.out.print(i + " ");//输出a ca cabc
}
- int length():返回字符串的长度
System.out.print(str.length());//输出9
- char charAt(int index):返回index索引处的字符
System.out.print(str.charAt(0));//输出a
- boolean isEmpty(void):判断字符串是否为空
System.out.print(str.isEmpty());//输出false
- String toLowerCase():将字符串所有字符转成小写
- String toUpperCase():将字符串所有字符转成大写
String str2 = "aBcDeFg";
System.out.print(str2.toLowerCase());//输出abcdefg
System.out.print(str2.toUpperCase());//输出ABCDEFG
- String trim():去除字符串前面和后面的空格,然后返回
String str3 = " abc de ";
System.out.print(str3.trim());//输出abc de
- boolean equals(String str2):判断字符串是否与字符串str1的内容相同
- boolean equalslgnoreCase(String str2):同上,区分大小写
String str1 = "abc";
String str2 = "abC";
System.out.print(str1.equals(str2));//输出false。
System.out.print(str1.equalsIgnoreCase(str2));//输出true
- String concat(String str2):用字符串与字符串str2连接,等价"+"
str1 = str1.concat(str2);
System.out.print(str1);//输出abcabC
- int compareTo(String str2):比较两个字符串的大小,第一个字符串大返回正数,第二个大返回负数,一样大返回0
System.out.print(str1.compareTo(str2));//输出32,字符串比较大小的方式是从左往右一个字符一个字符比
- String substring(int beginIndex):返回包括索引beginIndex在内及索引后面的子字符串
- String substring(int beginIndex,int endIndex):返回包括索引beginIndex在内及 后面到索引endIndex前面的子字符串
System.out.print(str.substring(1));//输出bcabcabc
System.out.print(str.substring(1,3));//输出bc
- String与其他数据类型的转换:
- String > 基本数据类型
int num = Integer.parseInt(str);//要求str是类似于"123"的字符串,否则会报错,其他类型转换类似
- 基本数据类型 > String
String str1 = String.valueOf(num);//第一种方式
String str2 = num + "";//第二种方式
- String > char[]
char[] charArr = str.toCharArray();
- char[] > String
String str = String.valueOf(charArr);//第一种方式
String str = new String(charArr);