系列文章目录
前言
接前一篇
四、String的常用方法系列四:和查找有关
(1)boolean startsWith(xx)
(2)boolean endsWith(xx)
(3)是否包含boolean contanis
(4)int indexOf(xx):如果存在返回下标,如果不存在返回-1
(5)int lastIndexOf(xx):如果存在返回最后一个的下标,如果不存在返回-1
需要注意,不仅仅开头也可判断多个字,比如判断是不是 我爱你开头,等等
判断结尾
五、截取
(1)String substring(int beginIndex):从字符串的[beginIndex]截取到最后
(2)String substring(int beginIndex, int endIndex):截取字符串的[beginIndex,endIndex)部分
五、匹配规则
boolean matches(正则表达式)
这里就不得不提到正则表达式,这里简单描述一下,正则表达式后面有时间详细讲解
正则表达式:用于检测文本的格式
校验某个字符串是否符合xx规则
应用场景:如校验 电话号码、是否是移动号…银行卡号、邮箱格式…
正则表达式不是java特有的,它是独立的,很多编程语言里面都可以用
什么叫正则?
举例:判断是不是全部是数字
注意,正则表达式刚开始学是比较难的,不是一下子就能学会的,在日常使用中,慢慢就能学会,也可以直接去网上查写好的,一般用到的也就那几个,不强求一定要非常精通,能看懂就行,大神请忽略这句话
六、替换
replace 替换
(1)String replace(target, value)
(2)String replaceAll(String regex, String replacement)
(3)String replaceFirst(String regex, String replacement)
其中(2)和(3)是支持正则表达式的
代码:
package com.atguigu.test09;
import org.junit.Test;
/*
* 方法系列(8):替换
* (1)String replace(target, value)
* (2)String replaceAll(String regex, String replacement)
* (3)String replaceFirst(String regex, String replacement)
* 其中(2)和(3)支持正则
*/
public class TestMethod8 {
@Test
public void test4(){
String str = "hello244world.java;887";
//把其中的非字母去掉
str = str.replaceAll("[^a-zA-Z]", "");
System.out.println(str);
}
@Test
public void test3(){
String str = "中国共产党是执政党,中国共产党是领导党";
str = str.replaceAll("共产党", "***");
System.out.println(str);
}
@Test
public void test2(){
String str = "中国共产党是执政党,中国共产党是领导党";
str = str.replaceFirst("共产党", "***");
System.out.println(str);
}
@Test
public void test1(){
String str = "中国共产党是执政党,中国共产党是领导党";
str = str.replace("共产党", "***");
System.out.println(str);
}
}
七、拆分
拆分split,返回的是一个数组,语法和使用如下
语法:String[] split(xx)
package com.atguigu.test09;
import java.util.Arrays;
import org.junit.Test;
/*
* 方法系列(9):拆分
* String[] split(xx)
*/
public class TestMethod9 {
@Test
public void test4(){
String str = "张三.23|李四.24|王五.25";
//|在正则中是有特殊意义,我这里要把它当做普通的|
String[] all = str.split("\\|");
//转成一个一个学生对象
Student[] students = new Student[all.length];
for (int i = 0; i < students.length; i++) {
//.在正则中是特殊意义,我这里想要表示普通的.
String[] strings = all[i].split("\\.");//张三, 23
String name = strings[0];
int age = Integer.parseInt(strings[1]);
students[i] = new Student(name,age);
}
for (int i = 0; i < students.length; i++) {
System.out.println(students[i]);
}
}
@Test
public void test3(){
String str = "1Hello2World3java4atguigu5";
str = str.replaceAll("^\\d|\\d$", "");
String[] all = str.split("\\d");
for (int i = 0; i < all.length; i++) {
System.out.println(all[i]);
}
}
@Test
public void test2(){
String str = "1Hello2World3java4atguigu";
str = str.replaceFirst("\\d", "");
System.out.println(str);
String[] all = str.split("\\d");
for (int i = 0; i < all.length; i++) {
System.out.println(all[i]);
}
}
@Test
public void test1(){
String str = "Hello World java atguigu";
String[] all = str.split(" ");
for (int i = 0; i < all.length; i++) {
System.out.println(all[i]);
}
}
}
class Student{
private String name;
private int age;
public Student(String name, int age) {
super();
this.name = name;
this.age = age;
}
public Student() {
super();
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Student [name=" + name + ", age=" + age + "]";
}
}