String常用方法(二)
(5)boolean = contains(CharSequence s) //判断字符串中是否含有参数s
public class TestString { public static void main(String[] args){ String string = "abcd"; boolean a = string.contains("a"); boolean b = string.contains("ab"); boolean c = string.contains("ad");//只能判断连续的 System.out.println(a+"--"+b+"--"+c); } } 输出结果: true--true--false
(6) boolean = startsWith(String prefix)//判断字符串是否以参数开始
boolean = endsWith(String suffix)//判断字符串是否以参数结尾
public class TestString { public static void main(String[] args){
//此方法常用来扫描电脑以***结尾的后缀文件 String string = "abcde"; boolean a = string.startsWith("ab"); boolean b = string.startsWith("a"); boolean c = string.startsWith("b"); boolean d = string.endsWith("de"); System.out.println(a+"--"+b+"--"+c+"--"+d); } } 输出结果: true--true--false--true
(7) byte[] = getBytes()
getBytes(String charsetName)
//将字符串转换为数组 byte类型的
char[] = toCharArray() //char类型的, 可以存储汉字等。。
public class TestString { public static void main(String[] args){ String string = "我要打NBA"; byte[] a = string.getBytes(); for(byte val:a){ System.out.println(val);//byte只有8个字节 不足以存储汉字 会出现乱码 } char[] b = string.toCharArray(); for(char val : b){ System.out.println(val);//可以写(int)val 输出Unicode码 } } } 输出结果: -26 -120 -111 -24 -90 -127 -26 -119 -109 78 66 65 我 要 打 N B A
(8)int = indexOf(int ch)
indexOf(int ch, int fromIndex)
indexOf(String str)
indexOf(String str, int fromIndex) //找寻给定的元素在字符串中第一次出现的索引位置 若字符串不存在则返回-1
int = lastIndexOf(int ch) lastIndexOf(int ch, int fromIndex)
lastIndexOf(String str)
lastIndexOf(String str, int fromIndex)//找寻给定的元素在字符串中最后一次出现的索引位置 若不存在则返回-1
public class TestString { public static void main(String[] args){ String string = "abcdefgabc"; // 不论从哪儿开始找寻 返回的index都是相对于整个String的 int a = string.indexOf("a");//从0索引开始,以后第一次出现的索引位置(位置从头开始数) int a1 = string.indexOf("a",2);//从2索引开始,以后第一次出现的索引位置(位置从头开始数) int a2 = string.indexOf("abc"); int a3 = string.indexOf("abc",1); int a4 = string.indexOf(97);//97--->a int a5 = string.indexOf(97,2); System.out.println(a+"--"+a1+"--"+a2+"--"+a3+"--"+a4+"--"+a5); int b1 = string.lastIndexOf("a");// 找寻给定的元素在字符串中最后一次出现的索引位置 若不存在则返回-1 int b2 = string.lastIndexOf("a",6);//从6索引位置开始 往前找 System.out.println(b1+"--"+b2); } } 输出结果: 0--7--0--7--0--7 7--0
(9)boolean = isEmpty()
;// 判断当前字符串是否为空字符串 (length是否为0) 注意与null之间的区别
public class TestString { public static void main(String[] args){ String string = "";//判断字符串是否有元素, 而null是引用为空 String string1="1"; boolean a = string.isEmpty(); boolean b = string1.isEmpty(); System.out.println(a+"--"+b); } } 输出结果: true--false
(10) String = replace(char oldChar, char newChar) //只能输入单个字符参数来进行替换(提议替换所有的字符),不能替换字符串
replace(CharSequence target, CharSequence replacement) //可以输入字符串
String =replaceAll(String regex, String replacement)//与带参数的replace用法一致,可输入字符串参数,可替换所有字符
String = replaceFirst(String regex, String replacement)//换第一次出现的字符
public class TestString { public static void main(String[] args){ String string = "吃葡萄不吐葡萄皮,吃葡萄不吐葡萄皮";
//常用于替换敏感字符 String string1 = string.replace("葡萄","**");//替换全部字符串 String string2 = string.replace("吃","*");//替换全部字符 String string3 = string.replaceAll("葡萄","**");//替换全部字符串,与replace用法相同 String string4 = string.replaceFirst("葡萄","**");//替换首个字符串 System.out.println(string1); System.out.println(string2); System.out.println(string3); System.out.println(string4); } } 输出结果: 吃**不吐**皮,吃**不吐**皮 *葡萄不吐葡萄皮,*葡萄不吐葡萄皮 吃**不吐**皮,吃**不吐**皮 吃**不吐葡萄皮,吃葡萄不吐葡萄皮
(11) String [ ] = split(String regex, int limit)
; //以regex参数为界限,拆分为limit参数个字符串,如果不写参数,则全部拆分
import java.util.Scanner; public class TestString { public static void main(String[] args){ String string = "a-b-c-d"; String [] strings = string.split("-",2); //以regex参数为界限,拆分为limit参数段 for(String val:strings){ System.out.println(val); } //小练习 //登录 //数组充当小数据库 //一位数组 String[] int[] String[] userBox = {"qwe-123","asd-666","zxc-888"}; Scanner input = new Scanner(System.in); System.out.println("请输入账号:"); String name = input.nextLine(); System.out.println("请输入密码"); String password = input.nextLine(); boolean b = false; for(int i=0;i<userBox.length;i++){ String[] value = userBox[i].split("-");//value[0]--name value[1]--password if(value[0].equals(name)){ if(value[1].equals(password)){ System.out.println("登录成功"); b = true; } break; } } if(!b){ System.out.println("用户名或密码错误"); } } }
(12) String = substring(int beginIndex) substring(int beginIndex, int endIndex) //截取字符串 , 从beginIndex开始 endIndex结束,若endIndex不写 则默认到字符串最后
public class TestString { public static void main(String[] args){ String string = "123456789"; String string1 = string.substring(2);//从2索引开始 直到结束 String string2 = string.substring(2, 5);//从2索引开始 直到5索引 [3,5) System.out.println(string1); System.out.println(string2); } } 输出结果: 3456789 345
(13) String = toLowerCase() String =
toUpperCase() // 将全部字符串转换成大写/小写
public class TestString { public static void main(String[] args){ String str = "abcdefg"; str = str.toUpperCase();//大写 System.out.println(str); str = str.toLowerCase();//小写 System.out.println(str); } } 输出结果: ABCDEFG abcdefg
(14) String = trim() //去掉字符串前后多余的空格
public class TestString { public static void main(String[] args){ String str = " 123 456 "; str = str.trim(); System.out.println(str); } } 输出结果: 123 456