Nếu bạn muốn tránh các lỗi fencepost và tránh di chuyển và xóa các mục trong một mảng, đây là một giải pháp hơi dài dòng mà sử dụng 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()]);
}
}
Added null
để thấy sự khác biệt giữa một thể hiện String trống (""
) và null
.
Kể từ khi câu trả lời này là khoảng 4,5 tuổi, tôi thêm một ví dụ 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);
}
}
Nguồn
2010-11-11 00:04:21
'null' hoàn toàn khác với" chuỗi rỗng "trong Java. Đó là vấn đề đầu tiên của bạn. –
null không phải là "". "" là một chuỗi rỗng, nhưng hoàn toàn hợp lệ. – EboMike
Không có giá trị null trong mảng đó. Tuy nhiên, có một sting rỗng (một đối tượng String không null với độ dài là 0). Dù sao, * những gì * bạn đã thử? –