📜  java 拆分字符串数组 - Java (1)

📅  最后修改于: 2023-12-03 15:31:33.833000             🧑  作者: Mango

Java 拆分字符串数组

在 Java 中,我们可以使用 String 类的 split() 方法来拆分一个字符串,返回拆分后的子字符串数组。本篇文章将介绍 Java 中如何拆分字符串数组。

String str = "Earth, Jupiter, Venus, Mars, Pluto";
String[] planets = str.split(", ");
System.out.println(java.util.Arrays.toString(planets));

输出:

[Earth, Jupiter, Venus, Mars, Pluto]

以上代码将根据逗号和空格拆分字符串,并将拆分后的子字符串存储在 planets 数组中。最后通过 java.util.Arrays.toString() 方法将 planets 数组输出。

如果要拆分的字符串没有分隔符,可以直接将字符串转换为字符数组并返回:

String str = "Hello World";
char[] chars = str.toCharArray();
System.out.println(java.util.Arrays.toString(chars));

输出:

[H, e, l, l, o,  , W, o, r, l, d]

以上代码将字符串转换为字符数组,并将字符数组存储在 chars 数组中。最后通过 java.util.Arrays.toString() 方法将 chars 数组输出。

在使用 split() 方法时,如果要匹配的分隔符是正则表达式中的元字符,需要进行转义,否则会抛出 PatternSyntaxException 异常。

String str = "1+2-3*4/5";
String[] operators = str.split("\\+|\\-|\\*|\\/");
System.out.println(java.util.Arrays.toString(operators));

输出:

[1, 2, 3, 4, 5]

以上代码将字符串 str 根据加号、减号、乘号、除号拆分为子字符串,并将子字符串存储在 operators 数组中。注意,这里需要用双反斜杠对元字符进行转义。

拆分后的子字符串数组可能会包含空字符串,可以通过下面的代码去除空字符串:

String str = ",1,2,,3,,";
String[] arr = str.split(",");
java.util.List<String> list = new java.util.ArrayList<>(java.util.Arrays.asList(arr));
list.removeIf(s -> s.isEmpty());
String[] result = list.toArray(new String[0]);
System.out.println(java.util.Arrays.toString(result));

输出:

[1, 2, 3]

以上代码将字符串 str 根据逗号拆分为子字符串,并将子字符串存储在数组 arr 中。然后将 arr 转换为 ArrayList 并使用 removeIf() 方法删除空字符串,最后将 ArrayList 转换为数组 result 并输出。