秋招做题需要,总结String类常用api如下:
简单的:str.length()、str.isEmpty()、str.split(“;”)切割
1.字符串反转:借助StringBuilder/StringBuffer,(常用StringBuilder类,因为快)
// 字符串反转 public static String reverseString(String str) { StringBuffer sBuffer = new StringBuffer(str); String string = sBuffer.reverse().toString(); return string; }
2.截取字符串:substring()方法
substring(int beginIndex, int endIndex)
第一个int为开始的索引,对应String数字中的开始位置,第二个是截止的索引位置,对应String中的结束位置
从beginIndex开始取,到endIndex结束,下标从0开始,取出的字符串不包括endIndex位置的字符
public static void main(String[] args) { String str = "abcdefgh"; //substring(int beginIndex, int endIndex) //从beginIndex开始取,到endIndex结束,不包括endIndex位置的字符 String res = str.substring(1, 3); System.out.println(res); }
输出:bc
3.删除字符串中的前几个数据:substring()方法【也就是保留某个数据以后的数据】
public static void main(String[] args) { String str1 = "abcdefghqwertyui"; //取索引为8往后的字符串(包含索引为8的字符) //也就是删除索引0-7的前8个数据 String res1 = str1.substring(8); System.out.println(res1); }
输出:
qwertyui
4.截取字符串的后几位:substring()方法
public static void main(String[] args) { String str1 = "abcdefghqwertyui"; //取出最后两位 String res1 = str1.substring(str1.length()-2); System.out.println(res1); }
输出:
ui
5.遍历字符串中的每一个字符:charAt()方法、toCharArray()方法 感觉两种方法差别不大,习惯其中一个方法就行
(1)charAt()方法返回指定索引位置的char值
把遍历出来的char拼成一个新的字符串
public static void main(String[] args) { String str1 = "0123456"; String res = ""; for (int i = 0; i < str1.length(); i++) { char everyWord = str1.charAt(i); //当想要某一些不连续的字符拼成新的字符串的时候: //需要用到--把取出的char拼成字符串 if(i%2==0) { res = res +everyWord; } } System.out.println(res); }
输出
0246
(2)toCharArray()方法
toCharArray()方法:将字符串对象中的字符转换为一个字符数组
public static void main(String[] args) { String str1 = "0123456"; String res = ""; char[] charArray = str1.toCharArray(); for (int i = 0; i < charArray.length; i++) { if (i % 2 == 0) { res = res + charArray[i]; } } System.out.println(res); }
输出
0246
6.字符串中是否包含另一个字符串 : indexOf()方法、contains()方法
indexOf()方法:返回要匹配的字符串第一次出现的索引的位置,没出现过返回-1
contains()方法:判断是否包含指定字符串,包含返回true,不包含返回false
lastIndexOf()方法: 要匹配的字符串最后一次出现的索引
public static void main(String[] args) { String str1 = "0123456"; int firstIndex = str1.indexOf("34"); System.out.println(firstIndex);//字符3的下标 boolean flag = str1.contains("56"); System.out.println(flag); }
输出
3
true
7.判断两个字符串中的内容是否相同:equals()方法
public static void main(String[] args) { String str1 = "0123456"; String str2 = "0123456"; boolean flag = str1.equals(str2); System.out.println(flag); }
输出
true
equalsIgnoreCase() 判断两个字符串是否是一样的(可以忽略字母大小写)
public static void main(String[] args) { String str1 = "A0123456"; String str2 = "a0123456"; boolean flag1 = str1.equals(str2); boolean flag2 = str1.equalsIgnoreCase(str2); System.out.println(flag1); System.out.println(flag2); }
输出
false true
8.移除字符串的空格:trim()方法
trim()方法:移除字符串两边的空格
public static void main(String[] args) { String str1 = " A0123456 "; String str2 = str1.trim(); System.out.println(str2); }
输出
A0123456
移除任意位置的空格
public static void main(String[] args) { String str = " 1 2 3 4 5 "; System.out.println(StringDemo.removeSpace(str)); System.out.println(StringDemo.removeSpace2(str)); } //自己写一个可以去除字符串任意位置空格的方法 //运用toCharArray() public static String removeSpace(String str) { String strRes = ""; char[] charArray = str.toCharArray(); for (char c : charArray) { if (c!=' ') { strRes=strRes+c; } } return strRes; } //运用charAt() public static String removeSpace2(String str) { String strRes = ""; for (int i = 0; i < str.length(); i++) { char c = str.charAt(i); if (c!=' ') { strRes=strRes+c; } } return strRes; }
9.字符串是否以指定字符串开头、结尾:startsWith()、endsWith()
public static void main(String[] args) { String str = "wsmOffers"; boolean flag1 = str.startsWith("wsm"); boolean flag2 = str.endsWith("Offers"); boolean flag3 = str.endsWith("wsm"); System.out.println(flag1); System.out.println(flag2); System.out.println(flag3); }
输出
true true false
10.把该字符串转换成 小写字符串:toLowerCase()、把该字符串转换成 大写字符串:toUpperCase()
public static void main(String[] args) { String str = "wsmOffers"; String res1 = str.toUpperCase(); String res2 = str.toLowerCase(); System.out.println("res1="+res1); System.out.println("res2="+res2); }
输出
res1=WSMOFFERS
res2=wsmoffers
11.把任何类型的数据转换成字符串类型
(1)方法1:前面也用到过,任何类型的数据,拼接一个字符串就会变成字符串
个人感觉这种方法适用于一个字符一个字符的拼接中
public static void main(String[] args) { String str = "01234"; String res = ""; for (int i = 0; i < str.length()-2; i++) { char everyWord = str.charAt(i); //字符串拼接的方法 res = res +everyWord; } System.out.println(res); }
输出
012
(2)方法2:valueOf()
静态类型的方法,直接类名.方法 int--->String
public static void main(String[] args) { int a = 123; String res = String.valueOf(a); System.out.println(res); }
String--->int
public static void main(String[] args) { //String--->int String str = "123"; int num = Integer.valueOf(str); System.out.println(num); }
12.补充:把char转换为int类型
public static void main(String[] args) { String str = "0123"; for (int i = 0; i < str.length(); i++) { char num = str.charAt(i); //char转int int num0101 = (int) num - (int) '0'; System.out.println(num0101); } }
13.在该字符串中,将给定的旧字符,用新字符替换、将给定的旧字符串,用新字符串替换
replace(s1,s2),用字符串s1代替原字符串中的s2
如果找不到就输出原字符串
public static void main(String[] args) { String str = "wsmOffers"; //可以替换字符 String res1 = str.replace('w', 'q'); //可以替换字符串 String res2 = str.replaceAll("Offers", "BATJTMD"); //找不到就输出原字符串 String res3 = str.replaceAll("offers", "BATJTMD"); System.out.println("res1="+res1); System.out.println("res2="+res2); System.out.println("res3="+res3); }
输出
res1=qsmOffers res2=wsmBATJTMD res3=wsmOffers
刷题过程中遇到什么再补充…