Gna*_*air 30 java arrays string
如何从java中的String数组中删除null值?
String[] firstArray = {"test1","","test2","test4",""};
Run Code Online (Sandbox Code Playgroud)
我需要"firstArray"而没有像这样的null(空)值
String[] firstArray = {"test1","test2","test4"};
Run Code Online (Sandbox Code Playgroud)
Viv*_*ath 65
如果你想避免使用fencepost错误并避免移动和删除数组中的项目,这里有一个有点冗长的解决方案,它使用List
:
import java.util.ArrayList;
import java.util.List;
public class RemoveNullValue {
public static void main( String args[] ) {
String[] firstArray = {"test1", "", "test2", "test4", "", null};
List<String> list = new ArrayList<String>();
for(String s : firstArray) {
if(s != null && s.length() > 0) {
list.add(s);
}
}
firstArray = list.toArray(new String[list.size()]);
}
}
Run Code Online (Sandbox Code Playgroud)
添加null
以显示空String实例(""
)和null
.之间的区别.
由于这个答案大约是4.5岁,我正在添加一个Java 8示例:
import java.util.Arrays;
import java.util.stream.Collectors;
public class RemoveNullValue {
public static void main( String args[] ) {
String[] firstArray = {"test1", "", "test2", "test4", "", null};
firstArray = Arrays.stream(firstArray)
.filter(s -> (s != null && s.length() > 0))
.toArray(String[]::new);
}
}
Run Code Online (Sandbox Code Playgroud)
Kir*_*oll 18
如果你真的想要从数组添加/删除项目,我可以建议List
吗?
String[] firstArray = {"test1","","test2","test4",""};
ArrayList<String> list = new ArrayList<String>();
for (String s : firstArray)
if (!s.equals(""))
list.add(s);
Run Code Online (Sandbox Code Playgroud)
然后,如果你真的需要把它放回一个数组:
firstArray = list.toArray(new String[list.size()]);
Run Code Online (Sandbox Code Playgroud)
似乎没有人提到过使用nonNull
方法,该方法也可以streams
在Java 8中用于将null(但不为空)删除为:
String[] origArray = {"Apple", "", "Cat", "Dog", "", null};
String[] cleanedArray = Arrays.stream(firstArray).filter(Objects::nonNull).toArray(String[]::new);
System.out.println(Arrays.toString(origArray));
System.out.println(Arrays.toString(cleanedArray));
Run Code Online (Sandbox Code Playgroud)
输出为:
[Apple 、、 Cat,Dog,null]
[苹果,猫,狗]
如果我们也想合并为空,那么我们可以定义一个实用程序方法(在类Utils
(说)中):
public static boolean isEmpty(String string) {
return (string != null && string.isEmpty());
}
Run Code Online (Sandbox Code Playgroud)
然后使用它来将项目筛选为:
Arrays.stream(firstArray).filter(Utils::isEmpty).toArray(String[]::new);
Run Code Online (Sandbox Code Playgroud)
我相信Apache common也提供了一种StringUtils.isNotEmpty
也可以使用的实用方法。
归档时间: |
|
查看次数: |
115430 次 |
最近记录: |