String支持正则表达式的相关方法和Object类
前言
本文将介绍关于String支持正则表达式的相关方法及Object类的相关内容
1.正则表达式
正则表达式是用来描述一个字符串的内容格式,使用它通常用来匹配一个字符串的内容是否符合格式要求.
基本语法
[]:表示一个字符,该字符可以是[]中指定的内容
例如:
预定义字符
.:"."表示任意一个字符,没有范围限制
\d:表示任意一个数字,等同于[0-9]
\w:表示任意一个单词字符,等同于[a-zA-Z0-9_ ]
\s:表示任意一个空白字符.
\D:表示不是数字
\W:不是单词字符
\S:不是空白字符
量词
?:表示前面的内容出现0-1次
例如:
abc? 可以匹配:a 或 b 或 c 或什么也不写
:表示前面的内容出现1次以上
abc 可以匹配:aaaaaaaaaa…或abcabcbabcbabcbabcbabbabab…
但是不能匹配:什么都不写或abcfdfsbbaqbb34bbwer…
*:表示前面的内容出现任意次(0-多次)
匹配内容与 一致,只是可以一次都不写.
{n}:表示前面的内容出现n次
例如:
abc{3} 可以匹配:aaa 或 bbb 或 aab
不能匹配:aaaa或aad
{n,m}:表示前面的内容出现最少n次最多m次
abc{3,5} 可以匹配:aaa 或 abcab 或者 abcc
不能匹配:aaaaaa 或 aabbd
{n,}:表示前面的内容出现n次以上(含n次)
abc{3,} 可以匹配:aaa 或 aaaaa… 或 abcbabbcbabcbabcba…
不能匹配:aa 或 abbdaw…
()用于分组,是将括号内的内容看做是一个整体
例如:
(abc){3} 表示abc整体出现3次. 可以匹配abcabcabc.
不能匹配aaa 或abcabc
(abc|def){3}表示abc或def整体出现3次.
可以匹配: abcabcabc 或 defdefdef 或 abcdefabc
2.String支持正则表达式的相关方法
matches方法
boolean matches(String regex)
使用给定的正则表达式验证当前字符串是否满足格式要求,满足则返回true.否则返回false
package string;
public class MatchesDemo {
public static void main(String[] args) {
/*
邮箱的正则表达式
用户名@域名
fancq@tedu.cn
[a-zA-Z0-9_] @[a-zA-Z0-9] (\.[a-zA-Z] )
*/
String mail = "fancq@tedu.cn";
String regex = "[a-zA-Z0-9_] @[a-zA-Z0-9] (\\.[a-zA-Z] ) ";
boolean match = mail.matches(regex);
if(match){
System.out.println("是邮箱");
}else{
System.out.println("不是邮箱");
}
}
}
split方法
String[] split(String regex)
将当前字符串按照满足正则表达式的部分进行拆分,将拆分后的每部分以数组形式返回.
package string;
import java.util.Arrays;
public class SplitDemo {
public static void main(String[] args) {
String str = "abc123def456ghi";
//按照数字部分拆分,获取其中每部分字母
String[] arr = str.split("[0-9] ");
System.out.println(arr.length);
System.out.println(Arrays.toString(arr));
str = "123,456,789,023";
//拆分出所有的数字部分
arr = str.split(",");
System.out.println(Arrays.toString(arr));
//如果连续遇到拆分项,则会拆分出一个空字符串.但是在字符串末尾连续遇到则忽略.
str = ",,,123,,,456,789,023,,,,";
//拆分出所有的数字部分
arr = str.split(",");
System.out.println(Arrays.toString(arr));
str = "123.456.789.023";
//拆分出所有的数字部分
arr = str.split("\\.");//.在正则表达式中表示任意字符,要注意转意!
System.out.println(Arrays.toString(arr));
}
}
replaceAll方法
String replaceAll(String regex,String str)
将当前字符串中满足正则表达式的部分替换为给定内容
package string;
public class ReplaceAllDemo {
public static void main(String[] args) {
String str = "abc123def456ghi";
//将当前字符串中的数字部分替换为#NUMBER#
str = str.replaceAll("[0-9] ","#NUMBER#");
System.out.println(str);
}
}
3.Object类
Object是所有类的顶级超类,其中有两个经常被子类重写的方法:
toString()与equals().
编写Point类进行测试
package object;
import java.util.Objects;
/**
* 使用当前类测试超类Object中经常被子类重写的方法:equals与toString
*
* Point类设计目的是表示直角坐标系中的一个点
*/
public class Point {
private int x;
private int y;
public Point(int x, int y) {
this.x = x;
this.y = y;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Point point = (Point) o;
return x == point.x && y == point.y;
}
@Override
public int hashCode() {
return Objects.hash(x, y);
}
@Override
public String toString() {
return "Point{"
"x=" x
", y=" y
'}';
}
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public int getY() {
return y;
}
public void setY(int y) {
this.y = y;
}
}
编写测试类
package object;
public class TestPoint {
public static void main(String[] args) {
Point p = new Point(1,2);
/*
System.out.println(Object o)
将给定对象toString方法返回返回的字符串输出到控制台
toString方法是Object提供的方法,该方法默认返回的字符串为:
类名@地址
*/
System.out.println(p);
// System.out.println(p.toString());
/*
任何类型与字符串链接结果都是字符串
这意味着链接的类型会被转为字符串再进行链接。其他类型是如何
转换为String?就是依靠toString方法
*/
String line = "当前对象是:" p;
System.out.println(line);
Point p2 = new Point(1,2);
System.out.println("p2:" p2);
//==对于引用类型的意义是比较是否为同一个对象
System.out.println(p==p2);//false 两个不同的对象
//equals则是比较两个对象"像不像"(对象内容,特征是否一致)
System.out.println(p.equals(p2));//true 两个对象的内容相同
}
}
总结:
正则表达式是Java中用于处理和操作文本的强大工具。我们可以使用正则表达式来匹配、搜索和操作文本中的模式。熟练掌握正则表达式的语法和规则,可以帮助我们在开发过程中更高效地处理和操作字符串。
在实际应用中,正则表达式可以用于验证和提取数据、搜索和替换文本、过滤和分割字符串等各种场景。了解正则表达式的基本语法和常用操作,将为我们的编码工作提供强大的支持。
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgeihic
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01