十九、其他字符串常用方法(二)

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

{ "boo", "and:foo" }

5

{ "boo", "and", "foo" }

-2

{ "boo", "and", "foo" }

o

5

{ "b", "", ":and:f", "", "" }

-2

{ "b", "", ":and:f", "", "" }

0

{ "b", "", ":and:f" }

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/