替换数组列表中的空值

Pan*_*sta 2 java exception nullpointerexception

我正在尝试替换 arrayList 中的空值,但出现异常

java.lang.NullPointerException
Run Code Online (Sandbox Code Playgroud)

我尝试过不同的方式:

Data.replaceAll(s -> s.replaceAll(" null", "")); 
Run Code Online (Sandbox Code Playgroud)

和 :

for(int x = 0; x < Data.size(); x++)
          {
                if(Data.get(x).equals("null") == true)
                {
                    Data.set(x, "");
                }
          }
Run Code Online (Sandbox Code Playgroud)

和 :

for(int x = 0; x < Data.size(); x++)
          {
                if(Data.get(x).equals(null) == true)
                {
                    Data.set(x, "");
                }
          }
Run Code Online (Sandbox Code Playgroud)

但抛出异常 java.lang.NullPointerException

这是我的 arrayList 示例:

[0050568D6268, null, A001, A, T3, Principal, COL - Test, 4-Lock, Com. On Stage, Social, RDC, null, null, null, null, -1, null, -1, 0, -1, 99, 53]
Run Code Online (Sandbox Code Playgroud)

我正在寻找任何帮助谢谢。

rda*_*das 5

您列表中的值似乎是实际的nulls 而不是带有"null". 您可以将它们替换""为:

data.replaceAll(t -> Objects.isNull(t) ? "" : t);
Run Code Online (Sandbox Code Playgroud)

您可以使用以下方法删除它们:

data.removeIf(Objects::isNull)
Run Code Online (Sandbox Code Playgroud)


Tim*_*sen 5

我想你想在这里使用map()

// given list data
data = data.stream()
    .map(s -> Objects.isNull(s) ? "" : s)
    .collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)

这将返回一个与输入相同的列表,除了所有null值都被空字符串替换之外。