String类的常用方法
获取方法
- charAt(int index):返回指定索引处的char值。
- indexOf(String str) :返回指指定字符第一次出现在字符串中的索引,返回int类型的值。
- indexOf(String str,int fromIndex) :返回指定字符第一次出现在字符串中的索引,从指定索引处开始查找。返回int类型的值。
- lastIndexOf(String str):反向查找,返回指定字符第一次出现在字符串中的索引,返回intl类型。
- lastIndexOf(String str,int fromIndex) :反向查找,返回指定字符第一次出现在字符串中的索引,从指定索引处开始查找。返回int类型的值。
- substring(int index):从指定索引处截取一段字符串,返回该字符串。
- substring(int beginIndex,int endIndex):截取指定开头和指定结束索引的字符串。
转换方法
- valueOf(多种类型的数据):静态方法,可以直接类名调方法。功能:将多种类型的数据转化成字符串,返回的是一个字符串对象。
- trim():功能:去除字符串两端的空格,返回String类型。
- replace(char oldchar,char newchar):将给定的旧字符串替换成给定的新字符串。
- toUpperCase():将字符串里面的所有字符转换成大写字符,返回String类型。
- toLowerCase();将字符串里面的所有字符转换成小写字符,返回String类型。
- concat():将指定字符串拼接到字符串的尾部。
- getBytes():将字符串转成字节数组,返回一个字节数组。
- toCharArry():将字符串转换成新的字符数组。返回一个字符数组。
判断方法
- startWith(String str):判断是测试的字符串是否以指定的前缀开头。
- **startWith(String str,int index)**判断指定索引处是否以指定的前缀开头。
- endsWith(String str):判断测试的字符串是否已指定的后缀结束。
- isEmpty();判断一个字符串是否是空。(“” 这个是空字符串,“ ”里面有空格不是空字符串,空格也是字符串)。
- contains():判断字符串中是否含有子字符串。
比较方法
- compareTo(String anotherString ):比较两个字符出串字面内容是否相同。返回的是一个int类的值(如果返回值是0,那么两个字符串内容相同)。
- compareToIgonreCase(String str):也是比较两个字符串,不区别大小写。返回的是一个int类的值(如果返回值是0,那么两个字符串内容相同)
- equals(String str):String类把equals重写了。比较的是两个字符串的字面内容是否相同,返回值是布尔类型的。
- equalsIgnoreCase(String anotherString):和equals相同。只是忽略了大小写。-
- equals和compareTo都是比较两字符串字面内容是否相同,但是返回值类型不相同。在使用时可根据需要的返回值来决定用哪个方法。
综合示例:
public class Test {
public static void main(String[] args) {
String user = "asASDdfghHJj";
String user2 = "qweGHRgTFtyu";
// 1. 使用charAt遍历字符串。
for (int i = 0; i < user.length(); i++) {
System.out.println(user.charAt(i));
}
// 2.字符串拼接、获取指定索引处的字符串,并改变字母值大小。
System.out.println((user.substring(0, 1).toUpperCase()).concat(user.substring(1).toLowerCase()));
// 3.比较两个字符出啊是否相等。
String user3 = "asdfG";
String user4 = "asdfg";
System.out.println(user3.equals(user4));
System.out.println(user3.equalsIgnoreCase(user4));
System.out.println(user3.compareTo(user4));
System.out.println(user3.compareToIgnoreCase(user4));
// 4.将字符串转换为字符数组
char[] ch = user3.toCharArray();
System.out.println(ch);
// 按指定格式打印字符数组
for (int i = 0; i < ch.length; i++) {
if (i == 0) {
System.out.print("{" + ch[i] + ",");
} else if (i == (ch.length - 1)) {
System.out.println(ch[i] + "}");
} else {
System.out.print(ch[i] + ",");
}
}
// 5. 将字符数组转换成字符串,并打印(利用构造方法将字符数组转化成字符串)
String s = new String(ch);
System.out.println(s);
// 判断一个字符是否出现两次
// 判断 l 是否出现一次
String user5="afhakkllhsueb";
int i = user5.indexOf("l");
int i1 = user5.lastIndexOf("l");
if (i==i1){
System.out.println("l只出现了一次");
}else{
System.out.println("l出现了一次以上");
}
System.out.println("=======");
// 判断字符串是否已特殊字符开始,或者结束,替换特殊字符。
String name="隔壁老王爱抽烟";
boolean s2 = name.startsWith("隔壁");
System.out.println(s2);
boolean s3= name.endsWith("抽烟");
System.out.println(s3);
System.out.println(name.replace("抽烟", "戒掉"));
}
}
示例二
public class Test2 {
public static void main(String[] args) {
// 判断是否是空串
String use = "";
System.out.println(use.isEmpty());
// 去掉字符串两端的空格
String use1 = " sui ujn kl ";
System.out.println("===" + use1.trim() + "===");
// 去掉字符串左端的空格
System.out.println("==" + use1.concat("a").trim().substring(0, ((use1.concat("a").trim()).length() - 1)) + "===");
System.out.println("+++++++++++++");
// 去掉字符串右边空格
String s = "a".concat(use1).trim();
String s6=s.substring(1);
System.out.println("====" + s.substring(1) + "===");
System.out.println("++++++++++++++++++++++++++");
System.out.println();
// 去掉中间空格
int length = use1.length();
String s4=use1.concat("a").trim();
String s5 = s4.substring(0, (s4.length() - 1));
int l=length-s5.length();
int r=length-s6.length();
String use3=use1.trim();
String replace = use3.replace(" ", "");
for (int i = 0; i < l; i++) {
replace= " ".concat(replace);
}
for (int j = 0; j < r; j++) {
replace=replace.concat(" ");
}
System.out.println("==="+replace+"===");
}
}
//将字节数组/字符数组转成字符串。
public class Test4 {
public static void main(String[] args) {
byte [] bytes={'a','b','c','d'};
String s = new String(bytes);
System.out.println(s);
String s2 = new String(bytes, 1, 3);
System.out.println(s2);
char [] arr={'a','b','c','d'};
String s1 = new String(arr);
System.out.println(s1);
}
public class Test3 {
public static void main(String[] args) {
// 将字符串数组转换成字符串。
String num = "";
String []arr={"A","S","D","F"};
for (int i = 0; i < arr.length; i++) {
num=num.concat(arr[i]);
}
System.out.println(num);
System.out.println("============");
// 将字符串转成字节数组
String s1="abcd";
byte[] bytes = s1.getBytes();
for (int i = 0; i < bytes.length; i++) {
System.out.println(bytes[i]);
}
// 判断字符串中是否含有的子字符串
String s3="我是中国人";
boolean f = s3.contains("中国");
System.out.println(f);
}
}