2015-03-31 45 views
0

我要删除所有空元素..我用下面这段代码,但没有工作..的Android的Java不能删除空元素

sejarahToken.removeAll(Collections.singleton("")); 
    sejarahToken.removeAll(Arrays.asList("")); 
    for (String st : sejarahToken) { 
     writingFile(st); 
    } 

一样使用此代码:

sejarahToken.removeAll(Collections.singleton(null)); 
sejarahToken.removeAll(Arrays.asList(null,"")); 

这里的输出sejarahToken数组列表上的txt文件..还有空值:

Leonardo 
da 
Vinci 
dari 
Italia 
dan 
Otto 
Lilienthal 
dari 
Jerman 
telah 
mendahuluinya 


Tetapi 
ternyata 
jauh 
sebelumnya 
semua 
sudah 
didahului 
oleh 
seorang 
+0

也许你有条目,只是空白?这对我们不知道“writingFile”是什么样子没有帮助。您是否尝试过通过代码进行调试,以查看调用removeAll之后的列表? – 2015-03-31 16:28:20

+0

谢谢..我只是意识到..都是因为空白。这就是为什么我不能删除使用blankspace或null – Lita 2015-03-31 17:33:34

+0

我只是知道..我很高兴你给我一个警告和解决这个问题。我会记住的。 – Lita 2015-04-06 23:38:28

回答

2

如果空字符串或带有空格的字符串可以使用以下代码片段来删除。

final Iterator<String> iterator = sejarahToken.iterator(); 

while (iterator.hasNext()) { 
    final String e = iterator.next(); 

    if (e == null || e.trim().isEmpty()) 
    iterator.remove(); 
} 
+0

谢谢..这段代码给了我一个想法。 – Lita 2015-03-31 17:46:17

0

使用下面的代码行:

sejarahToken.removeAll(Collections.singleton(null)); 

,如果你使用它在Arrays.asList它将抛出UnsupportedException,因为它给你不可改变的副本,它不能被修改。请参阅下面的代码。它创建可变的副本,不会抛出任何异常。

public static String[] clean(final String[] v) { 
    List<String> sejarahToken = new ArrayList<String>(Arrays.asList(v)); 
    list.removeAll(Collections.singleton(null)); 
    return sejarahToken.toArray(new String[sejarahToken.size()]); 
} 
1

使用此

al.removeAll(Arrays.asList(null,"")); 

这将删除为空或等于所有元素“”在你的名单。

+0

第二个代码不适用于空格或空字符串。更好的去第一种方式 – laubed 2015-03-31 16:46:52