如何在 Java 中分割一个字符串
Hassan Saeed
2021年12月25日
2020年9月19日
本教程讨论如何在 Java 中拆分/分割一个字符串。
Java 中的 String
是非原始数据类型之一,用于存储一个字符序列。我们可以简单地声明一个字符串变量,如下所示。
String string = "I am a string";
String string1 = "I am another string";
我们可能需要执行几个字符串处理任务,这取决于我们要实现的目标。让我们考虑一下这样的情况:我们有一个以 CSV 格式表示数据的字符串-全部用逗号分隔。
String data = "Apple,Banana,Orange,Peach";
我们希望从中得到所有的独立字符串;因此我们需要根据逗号对字符串进行拆分,以分离数据,得到如下的输出。
> Apple
> Banana
> Orange
> Peach
Java 字符串默认情况下有一个拆分函数 String#split()
,它接收一个正则表达式作为输入,并在给定的输入上拆分后返回一个结果字符串数组。
下面的例子说明了如何在 Java 中使用这个方法来拆分给定的字符串。
public class Main {
public static void main(String args[]) {
String data = "Apple,Banana,Orange,Peach";
String[] splitted = data.split(",");
for (int i=0; i<splitted.length; i++){
System.out.println(splitted[i]);
}
}
}
上面的代码输出如下。
Apple
Banana
Orange
Peach
让我们尝试用这个方法在不同的参数上拆分一个字符串。
以 .
作为分隔符
这次我们有一个这样的字符串 - "One.Two.Three.Four"
。让我们再次使用同样的方法来拆分它。
public class Main {
public static void main(String args[]) {
String data = "One.Two.Three.Four";
String[] splitted = data.split(".");
for (int i=0; i<splitted.length; i++){
System.out.println(splitted[i]);
}
}
}
上面的代码将什么也不输出! 请记住,我们提到过,split
函数需要一个正则表达模式作为输入。因此,当我们要对一些特殊字符进行拆分时,我们需要采取额外的措施。
这里有 12 个具有特殊含义的字符。
- 反斜杠
\
- 小括号
^
- 美元符号
$
- 句点
.
- 竖线或管道符号
|
- 问号
?
- 星号
*
- 加号
+
- 左括号
(
- 右括号
)
- 左方括号
[
- 左大括号
{
这些特殊字符通常被称为元字符。
如果我们要对上述任何一个字符进行拆分,我们可以使用反斜杠 /
来转义这些特殊字符,所以使用 data.split('\\.')
来代替 data.split('.')
。
public class Main {
public static void main(String args[]) {
String data = "One.Two.Three.Four";
String[] splitted = data.split("\\.");
for (int i=0; i<splitted.length; i++){
System.out.println(splitted[i]);
}
}
}
现在上面的代码就能正确输出了。
One
Two
Three
Four
让我们再试一个例子。
以一个字符串作为分隔符来拆分
这次我们有一个这样的字符串。"OneFruitTwoFruitThreeFruit"
. 我们再用同样的方法,根据字符串 Fruit
进行拆分。
public class Main {
public static void main(String args[]) {
String data = "OneFruitTwoFruitThreeFruit";
String[] splitted = data.split("Fruit");
for (int i=0; i<splitted.length; i++){
System.out.println(splitted[i]);
}
}
}
上面的代码输出。
One
Two
Three
现在我们知道了如何在 Java 中对任意给定的参数进行拆分。