Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java中去掉数组中的空元素?_Java_Arrays_String - Fatal编程技术网

如何在Java中去掉数组中的空元素?

如何在Java中去掉数组中的空元素?,java,arrays,string,Java,Arrays,String,假设我有一个数组,如下所示: String[] letter = {a, b, c, e, f, } 如何修剪此数组以除去空元素?该数组中没有“空”元素。尾随的逗号没有区别-数组仍然有5个元素 如果在实际代码中,数组中的某些元素为空(并且您必须说明您所说的-null值?值指的是空字符串?),那么您无法更改现有数组的大小,但可以创建一个新数组,例如使用 List<String> list = new ArrayList<String>(); for (String t

假设我有一个数组,如下所示:

  String[] letter = {a, b, c, e, f, }
如何修剪此数组以除去空元素?

该数组中没有“空”元素。尾随的逗号没有区别-数组仍然有5个元素

如果在实际代码中,数组中的某些元素为空(并且您必须说明您所说的-null值?值指的是空字符串?),那么您无法更改现有数组的大小,但可以创建一个新数组,例如使用

List<String> list = new ArrayList<String>();
for (String text : array)
{
    if (text != null && text.length() > 0)
    {
        list.add(text);
    }
}
array = list.toArray(new String[0]);
List List=new ArrayList();
for(字符串文本:数组)
{
if(text!=null&&text.length()>0)
{
列表。添加(文本);
}
}
array=list.toArray(新字符串[0]);

没有空元素。

Java允许在代码中定义的数组中的最后一个元素后面加一个逗号。因此,数组中没有空元素

为了创建空(null)元素,您需要执行以下操作:

String[] letter = {a, b, c, e, f, null};

注意:根据我的解释,OP认为后面的逗号在数组末尾添加一个null元素。

数组中没有空元素。如果你把like放在下面,那么它也将包含null和空格

String[] letter = {"a", "b", "c", "e", "f", null, " h", " "};
然后你必须像这样经历

    for (int i = 0; i < letter.length; i++) {
        if (letter[i] != null && !letter[i].equals(" ")) {
            System.out.println("Letters::::::" + letter[i]);
        }

    }
    System.out.println("Length:::::" + letter.length);
for(int i=0;i
假设您的数组末尾有一个或多个
null
元素,您可以使用下面的代码查找第一个
null
元素的索引,然后创建数组的副本,丢弃该元素及其后的任何内容

// sample array to be trimmed
String[] array = {"1", "2", "3", null, null};

int end = Arrays.asList(array).indexOf(null);
if (end >= 0) {
    String[] tmp = new String[end];
    System.arraycopy(array, 0, tmp, 0, end);
    array = tmp;
}

您可以使用这个简单的代码段从数组中删除null和空字符串` 导入java.util.array

public class Test {
   public static void main(String[] args) {
      String data = "1, 2, ,4 , , 5 ";
      String[] split = data.split(",");
      split = Arrays.stream(split).filter(s -> (s != null && s.length() > 0 && !s.trim().equals("")))
            .toArray(String[]::new);
      for(String str:split){
          System.out.println(str.trim());
      }
  }
}`

重复的:这个问题不是那个问题的重复。@Erick Robertson如果你阅读这个问题下面的注释,你会发现它是。初始值设定项中的尾随逗号被忽略。参见[Here][1][1]:-1问题不清楚空元素是什么。在我看来,OP认为由于后面的逗号,正在将null添加到数组的末尾。但是这还不清楚,这个问题需要改进。请注意,
for(数组中的字符串文本)
是psudocode。在java中使用
for(String text:array)
。@AmirRaminfar:嗯,这是无效的代码-混合了C#的foreach和java的增强for循环。现在修好了。