00018.04 String的常用方法(包含查找startWith、endsWith截取 substring、匹配规则matches正则表达式、替换replace拆分split

系列文章目录

前言

接前一篇

四、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 + "]";
	}
	
}

总结

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值