如何从堆栈/队列中删除所有空白字符

时间:2017-10-04 22:20:48

标签: java stack queue

我有这个FIFO堆栈/队列。

[,,,,,,,,, Readln,A,]

所有领先的堆栈都是空格/空格字符

我想要的是删除所有的空格字符,然后才能删除 [Readln,A,]作为我的筹码。

这是我的代码,将当前字符串添加到堆栈并删除该字符,如果它是一个空格但它不起作用,还尝试了许多其他迭代,但我不能正确。 :(

以下是我尝试过的最后一段代码,但仍未提供我想要的内容。

myQ.add(temp);
                if(myQ.peek()==" ")
                {
                    myQ.poll();
                }

2 个答案:

答案 0 :(得分:2)

以下代码应该适合您:

while(myQ.peek().trim().equals("")) { 
    myQ.poll();
} 

答案 1 :(得分:2)

Gene是对的,在将字符串推入队列(或堆栈)之前,最好检查字符串是否为空。如果您已经有一个空字符串的队列(或堆栈),就像您的情况一样,您可以使用Queue(resp。Stack)的removeIf(Predicate)方法并执行以下操作,< / p>

myQ.removeIf(s -> s.trim().isEmpty());

Queue包提供的Stackjava.util都有此方法。