String 类
string类是java针对字符串操作的类,常用主要有六大类方法
获取
length():返回此字符串的长度。
charAt(int index) : 返回 char指定索引处的值。
indexOf(String str) :返回指定子字符串第一次出现的字符串内的索引。
lastIndexOf(String str) : 返回指定子字符串最后一次出现的字符串中的索引。
public class StringTest {
public static void main(String[] args) {
String str = "jdlajfajlfdajsl";
System.out.println(str.length()); // 输出字符串长度为 15
System.out.println(str.charAt(5)); // 输出下标(索引)为5(即第六个)字符 f
System.out.println(str.indexOf("a")); // 输出第一次出现 a 的索引 3
System.out.println(str.lastIndexOf("a")); // 输出最后一次出现 a 的索引 11
}
}
后两种方法还有其他的重载方法
indexOf(String str, int fromIndex) :返回指定子串的第一次出现的字符串中的索引,从指定的索引开始向后搜索。
**lastIndexOf(String str, int fromIndex) :**返回指定子字符串的最后一次出现的字符串中的索引,从指定的索引开始到达输入值。
它的搜索区间为 k <= fromIndex,只到搜索到最后一个符合条件的字符串
public class StringTest {
public static void main(String[] args) {
String str = "jdlajfajlfdajsl";
//从第六位 f 开始向后查找第一个为 j 的字符串的索引
//字符串中索引0,4,7,12都有“j”输入0则返回0,输入闭区间 1 - 4的值都返回4,输入闭区间 5 -7 的值都返回5,输入闭区间 7 - 12 的值都返回12
System.out.println(str.indexOf("j",5));
//字符串中索引0,4,7,12都有“j”输入0则返回0,输入闭区间 1 - 4的值都返回0,输入闭区间 5 -7 的值都返回4,输入闭区间 7 - 12 的值都返回7,超过12 小于字符串长度都返回 12
System.out.println(str.lastIndexOf("j",5));
}
}
若没有查到指定的字符串返回值都是 -1
判断
contains(CharSequence s):当且仅当此字符串包含指定的char值序列时才返回true。
isEmpty():返回 true,且仅当 length()为 0 。
startsWith(String prefix) :测试此字符串是否以指定的前缀 prefix 开头
endsWith(String suffix) :测试此字符串是否以指定的后缀suffix结尾。
equals(Object anObject) :将此字符串与指定对象进行比较。
equalsIgnoreCase(String anotherString) :将此 String与其他 String比较,忽略掉大小写。
public class StringTest {
public static void main(String[] args) {
String str1 = "abcdabcd";
String str2 = "abcdabcd";
String str4 = "ABCDABCD";
String str3 = "" ;
// 匹配字符串 str1 有 b 这个字符串 返回 true
System.out.println(str1.contains("b"));
// 匹配字符串 str1 没有 f 这个字符串 返回 false
System.out.println(str1.contains("f"));
// 匹配字符串 str1 字符串长度不为 0 返回 false
System.out.println(str1.isEmpty());
// 匹配字符串 str3 字符串长度为 0 返回 true
System.out.println(str3.isEmpty());
// 匹配字符串 str1 它是以 a 字符串开头 返回 true
System.out.println(str1.startsWith("a"));
// 匹配字符串 str1 它不是以 a 字符串开头 返回 false
System.out.println(str1.startsWith("b"));
// 匹配字符串 str1 它是以 b 字符串结尾 返回 true
System.out.println(str1.endsWith("d"));
// 匹配字符串 str1 它不是以 b 字符串开头 返回 false
System.out.println(str1.endsWith("c"));
// 用字符串 str1 匹配 字符串 str2 二者相同 返回 true
System.out.println(str1.equals(str2));
// 用字符串 str1 匹配 字符串 str3 二者不相同 返回 false
System.out.println(str1.equals(str3));
// 用字符串 str1 匹配 字符串 str4 二者大小写不相同 返回 false
System.out.println(str1.equals(str4));
// 用字符串 str1 匹配 字符串 str4 二者忽略大小写后相同 返回 true
System.out.println(str1.equalsIgnoreCase(str4));
}
}
输出值如下
true
false
false
true
true
false
true
false
true
false
false
true
转换
字符数组 ----> 字符串
**valueOf(char[] data) **:返回 char数组参数的字符串 char形式。
copyValueOf(char[] data) :返回 char数组参数的字符串 char形式。
字符串 ----> 字符数组
toCharArray() :将此字符串转换为新的字符数组。
import static java.lang.String.valueOf;
public class StringTest {
public static void main(String[] args) {
String str1 = "hello world";
String str2;
int n = str1.length();
char[] chars= str1.toCharArray();
for (int i = 0;i < n;i++){
System.out.println(chars[i]);
}
str2 = valueOf(chars);
System.out.println(str2);
}
}
输出入下
h
e
l
l
o
w
o
r
l
d
hello world
每个字符(包括空格)已经被存入了chars这个字符型的数组中了,执行了valueOf(chars);后又被从重新转换为字符串
toLowerCase():将所有在此字符 String使用默认语言环境的规则,以小写。
toUpperCase():将所有在此字符 String使用默认语言环境的规则大写。
trim():返回一个字符串,其值为此字符串,并删除任何前导和尾随空格。
public class StringTest {
public static void main(String[] args) {
String str1 = "hello world";
String str2 = " hello";
String str3 = "HELLO WORLD";
System.out.println(str1);
//转换为大写
System.out.println(str1.toUpperCase());
//转换为小写
System.out.println(str3.toLowerCase());
System.out.println(str2);
//去掉前导的空格
System.out.println(str2.trim());
}
}
输出入下:
hello world
HELLO WORLD
hello world
hello
hello