面试题答案
一键面试String的split(String regex)方法作用
split(String regex)
方法用于根据给定的正则表达式 regex
对字符串进行分割,将字符串拆分成一个字符串数组。拆分后的子字符串存储在数组中,数组的长度就是拆分后的子字符串数量。
特殊字符(如点号'.')遇到的问题
在正则表达式中,点号 '.' 是一个特殊字符,它表示匹配任意单个字符。因此,当使用 split(".")
时,并不是按点号字符进行分割,而是尝试匹配任意字符进行分割,这会导致将字符串拆分成一个个字符组成的数组,而不是以点号为分隔符拆分。例如:
String str = "www.example.com";
String[] parts = str.split(".");
System.out.println(Arrays.toString(parts));
// 输出并不是预期的["www", "example", "com"],而是将每个字符作为一个元素的数组
解决方法
要将点号作为普通字符进行分割,需要对其进行转义。在Java字符串中,要表示正则表达式中的转义字符,需要使用两个反斜杠 \\
来表示一个反斜杠,因为在Java字符串中反斜杠本身也是转义字符。所以正确的用法是:
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
String str = "www.example.com";
String[] parts = str.split("\\.");
System.out.println(Arrays.toString(parts));
// 输出: [www, example, com]
}
}
这样就能按照点号字符正确地对字符串进行分割。