十九、其他字符串常用方法(二)
1 正则表达式
正则表达式(Regular Expression),在代码中常简写为 regex、regexp 或 RE,它是计算机科学的一个概念。
String
类里也提供了如下几个特殊的方法。
boolean matches(String regex)
:判断该字符串是否匹配指定的正则表达式。String replaceAll(String regex, String replacement)
:将该字符串中所有匹配regex
的子串替换成replacement
。String replaceFirst(String regex, String replacement)
:将该字符串中第一个匹配regex
的子串替换成replacement
。String[] split(String regex)
:以regex
作为分隔符,把该字符串分割成多个子串。
上面这些特殊的方法都依赖于 Java 提供的正则表达式支持,除此之外,Java 还提供了 Pattern 和 Matcher 两个类专门用于提供正则表达式支持。
2 分割字符串
String
类的 split()
方法可以按指定的分割符对目标字符串进行分割,分割后的内容存放在字符串数组中。该方法主要有如下两种重载形式:
str.split(String regex)
str.split(String regex,int limit)
其中它们的含义如下:
str
为需要分割的目标字符串。regex
为指定的分割符,可以是任意字符串。limit
表示分割后生成的字符串的限制个数,不写则默认为 0。
对 limit
的说明:
如果
limit
为正值,数组的长度不会大于limit
,数组的最后一个条目将包含最后一个匹配分隔符之外的所有输入。如果
limit
为零,则模式将被应用尽可能多的次数,数组可以有任意长度,尾部的空字符串将被丢弃。如果
limit
为负数,则将尽可能多次应用该模式,数组长度不限,尾部的空字符串不会被丢弃。
例如,字符串 "boo:and:foo"
在使用这些参数后会产生以下结果:
Regex | Limit | Result |
---|---|---|
: | 2 |
|
5 |
| |
-2 |
| |
o | 5 |
|
-2 |
| |
0 |
|
3 字符串的替换
3.1 replace() 方法
replace()
方法用于将目标字符串中的指定字符(串)替换成新的字符(串),其语法格式如下:
字符串.replace(String oldChar, String newChar)
其中,oldChar
表示被替换的字符串;newChar
表示用于替换的字符串。replace()
方法会将字符串中所有 oldChar
替换成 newChar
。
3.2 replaceFirst() 方法
replaceFirst()
方法用于将目标字符串中匹配某正则表达式的第一个子字符串替换成新的字符串,其语法形式如下:
字符串.replaceFirst(String regex, String replacement)
其中,regex
表示正则表达式;replacement
表示用于替换的字符串。例如:
String words = "hello java,hello php";
String newStr = words.replaceFirst("hello","你好 ");
System.out.println(newStr); // 输出:你好 java,hello php
3.3 replaceAll() 方法
replaceAll()
方法用于将目标字符串中匹配某正则表达式的所有子字符串替换成新的字符串,其语法形式如下:
字符串.replaceAll(String regex, String replacement)
其中,regex
表示正则表达式,replacement
表示用于替换的字符串。例如:
String words = "hello java,hello php";
String newStr = words.replaceAll("hello","你好 ");
System.out.println(newStr); // 输出:你好 java,你好 php
4 判断字符串是否与正则表达式匹配
public boolean matches(String regex)
判断字符串是否与给定的正则表达式匹配。
以 str.matches(regex)
的形式调用此方法,如果相匹配则返回 true
,否则返回 false
。
主要参考内容来源:http://c.biancheng.net/