java中split返回的数组元素过滤空字符串
时间: 2023-09-09 12:12:41 浏览: 112
在 Java 中,可以使用 split 方法将一个字符串按照指定的分隔符分割成多个子字符串,返回的是一个字符串数组。如果要过滤掉数组中的空字符串,可以使用 Java 8 中的 Stream API 和 filter 方法来实现。
具体操作如下:
```java
String str = "hello,,world,,";
String[] arr = str.split(",");
String[] result = Arrays.stream(arr)
.filter(s -> !s.isEmpty())
.toArray(String[]::new);
```
上述代码中,首先使用 split 方法将字符串按照逗号分隔成字符串数组 arr。接着使用 Arrays 类的 stream 方法将数组转换成一个流。然后使用 filter 方法过滤掉空字符串,最后使用 toArray 方法将过滤后的结果转换成一个字符串数组 result。
注意:如果要过滤掉的不仅是空字符串,还包括只含有空格的字符串,可以使用 trim 方法先将字符串两端的空格去掉,然后再进行过滤。
相关问题
java字符串数组去除null
在Java中,如果你有一个包含null值的字符串数组,你可以通过遍历并过滤掉null元素来创建一个新的只包含非null字符串的数组。这里是一个简单的示例:
```java
String[] originalArray = { "a", null, "b", null, "c" }; // 假设这是一个包含null的字符串数组
// 创建一个新的StringBuilder用于收集非null的字符串
StringBuilder nonNullStrings = new StringBuilder();
// 遍历原始数组
for (String s : originalArray) {
if (s != null) {
// 如果当前元素不为null,添加到StringBuilder中
nonNullStrings.append(s).append(" "); // 这里假设每个元素之间需要空格分隔
}
}
// 将StringBuilder转换为新的字符串数组
String[] newArray = nonNullStrings.toString().split("\\s+");
System.out.println(Arrays.toString(newArray)); // 输出: [a, b, c]
```
在这个例子中,`newArray`将只包含非null的字符串:"a", "b", 和 "c"。
字符串/data/ 被split('/')分割成数组后怎么去除数组中的空项
在编程中,当使用`split`方法按照某个分隔符将字符串分割成数组后,通常会遇到一些空项,特别是当字符串的开始或结束部分包含分隔符,或者分隔符连续出现时。要去除这些由空字符串组成的空项,可以使用数组的`filter`方法来过滤掉空字符串。
以下是一个示例代码,展示了如何在Java中实现这个过程:
```java
String dataStr = "/data/";
String[] dataArray = dataStr.split("/");
String[] dataArrayFiltered = java.util.Arrays.stream(dataArray)
.filter(item -> !item.isEmpty())
.toArray(String[]::new);
```
这段代码首先将`dataStr`按照`/`分割成数组`dataArray`,然后使用Java 8的流(Stream)操作来过滤掉空字符串,并将结果转换回数组`dataArrayFiltered`。
对于其他编程语言,处理方法类似,主要思想是使用数组的过滤方法,检查每个元素是否为空字符串,仅保留非空的元素。
阅读全文