不要转换数组中的“空”值

时间:2019-02-13 15:26:14

标签: java arrays data-structures

我有3个通用数组,它们的预定大小均为25。例如,如果数组中只有5个实际值,它将显示这5个值,而接下来的20个显示为null。我不想显示任何空值。我是否可以在toString中编辑内容?我的toString是

public String toString(){
  return Arrays.toString(container);
}

容器是从构造函数创建的数组对象。这是我的输出结果。.

Picture of output

4 个答案:

答案 0 :(得分:2)

在下面,我想您的容器类似于Something []container

使用StringBuilder的Java 8之前的版本:

public String toString(){
    StringBuilder s = new StringBuilder();
    for (Something i : container) if (i!=null) s.append(i.toString()+",");
    return s.toString();
}

使用流的Java后8:

public String toString(){
    return Arrays.stream(container)
                 .filter(Objects::nonNull)
                 .map(Object::toString)
                 .collect(Collectors.joining(","));
}

答案 1 :(得分:2)

XMLEventReader reader = wstxInputFactory.createXMLEventReader(new StringReader(fulltext));方法都产生整个数组的表示。如果这不是您想要的,那么您需要选择其他方法。例如,您可以执行以下操作:

Arrays.toString()

答案 2 :(得分:1)

假设您使用的是Java8或更高版本:

Arrays.toString(Arrays.stream(container).filter(i->i!=null).collect(Collectors.toList()));

答案 3 :(得分:0)

使用java8流的另一种解决方案:

MyType[] array = Arrays.stream(originalArray).filter(Objects::nonNull).toArray(MyType[]::new);

System.out.println(Arrays.toString(array));