String常用api
1、String类常用的api
String
类的api很多,在这里列举出比较常用的api,我将其列举成了一个表格。
方法名 | 方法说明 |
---|---|
length() | 获取字符串的长度 |
equals(String s) | 判断两个字符串内容是否相同 |
equalsIgnoreCase(String s) | 不区分大小写判断两个字符串内容是否相同 |
charAt(int index) | 返回下标所在的cha值(字符) |
indexOf(String s) | 返回字串第一次出现的位置,没出现则返回-1 |
lastIndexOf(String s) | 返回字串最后一次出现的位置,没出现返回-1 |
starstWith(String prefix) | 判断字符串是否以prefix为前缀开头 |
endsWith(String suffix) | 判断字符串是否以suffix为后缀结尾 |
toLowerCase() | 返回字符串的小写形式 |
toUpperCase() | 返回字符串的大写形式 |
substring(int startindex,int endindex) | 返回从startindex开始到endindex结束的字串 |
contains(String s) | 判断是否包含字串s |
concat(String s) | 字符串拼接,相当于+ |
replaceAll(String oldSrt,String newSrt) | 替换原有字符串中的字串为目标字串 |
split(String split) | 以指定字符串分割后返回字符串数组 |
getBytes() | 返回字符串的字节数组 |
tocharArray() | 将此字符串转换为一个新的字符数组 |
tirm() | 返回字符串两边消除空格后的字符串 |
isEmpty() | 判断字符串是否为空 |
compareTo | 将字符串与另一个对象进行比较 |
hashCode() | 返回字符串的哈希值 |
下面是一个个常用api的练习:
public class Test {
public static void main(String[] args) {
String s1 = " hello is a java 程序! ";
String s2 = " Hello is a java 程序! ";
String fileName = "TestUsersService.java";
String citys = "北京 上海 广州 成都 武汉";
System.out.println(s1.length());//返回字符串的长度
System.out.println(s1.equals(s2));//判断字符串内容是否相同
System.out.println(s1.equalsIgnoreCase(s2));//忽略大小写判断内容是否相同
System.out.println(s1.charAt(7));//返回字符串第index位置的字符
System.out.println(s1.indexOf("a"));//返回子串第一次出现的位置,没出现则返回-1
System.out.println(s1.lastIndexOf("a"));//返回子串最后一次出现的位置,没出现则返回-1
System.out.println(fileName.startsWith("Test"));//判断字符串是否以Test前缀开头
System.out.println(fileName.endsWith("java"));//判断两字符串是否以java后缀结尾
System.out.println(s2.toLowerCase());//返回字符串的小写形式
System.out.println(s2.toUpperCase());//返回字符串的大写形式
System.out.println(s1.substring(12, 16));//返回从start到end结尾的子串
System.out.println(s1.contains("java"));//判断字符串是否包含子串java
System.out.println(s1.concat(s2));//字符串拼接,等同于+
System.out.println(s1.replaceAll("java", "javascript"));//替换字符串中的子串java为目标子串javascript
System.out.println(s1.getBytes());//返回字符串的字节数组
System.out.println(s1.toCharArray());//返回字符串的字符数组
System.out.println(s2.trim());//返回消除字符串两边的空格后的字符串
System.out.println(s1.compareTo(s2));//比较两个字符串的大小,默认按照字符的Unicode值比较
String[] arr = citys.split(" ");//以指定字符串分割后返回字符串数组
for(String s: arr){
System.out.println(s);
}
}
}
运行结果:
21
false
true
i
10
15
true
true
hello is a java 程序!
HELLO IS A JAVA 程序!
java
true
hello is a java 程序! Hello is a java 程序!
hello is a javascript 程序!
[B@1b6d3586
hello is a java 程序!
Hello is a java 程序!
32
北京
上海
广州
成都
武汉
2、String练习题
从键盘上输入10个名字,判断其中以“王”姓开头的人数是多少?
提示:使用startsWith()
或者charAt(0)
。
示例代码:
import java.util.Scanner;
public class StringPritaise {
public static void main(String[] args) {
int Count = 0;//人数统计
String[] arr = new String[10];
Scanner sc = new Scanner(System.in);
//进行姓名的输入
for (int i = 0; i < arr.length; i++) {
System.out.println("请输入第" + (i + 1) + "个名字:");
arr[i] = sc.next();
}
//进行统计姓“王”的同学
for (int i = 0; i < arr.length; i++) {
if (arr[i].startsWith("王")) {
Count++;
}
}
System.out.println("");
System.out.println("所有姓名中姓“王”的人有" + Count + "个!!");
}
}
新手小白,如有错误,欢迎大家指正。