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

Java 如何从堆栈/队列中删除所有空白字符,java,stack,queue,Java,Stack,Queue,我有这个FIFO堆栈/队列 [,,,,Readln,A,] 所有前导堆栈都是空格/空格字符 我想要的是删除所有的空白字符,只保留 [Readln,A,]作为我的堆栈 这是我的代码,用于将当前字符串添加到堆栈中并删除字符(如果它是空白,但不起作用),除此之外,我还尝试了许多其他迭代,但我无法正确执行:( 下面是我最后一次尝试的代码,它仍然没有给出我想要的 myQ.add(temp); if(myQ.peek()==" ") {

我有这个FIFO堆栈/队列

[,,,,Readln,A,]

所有前导堆栈都是空格/空格字符

我想要的是删除所有的空白字符,只保留 [Readln,A,]作为我的堆栈

这是我的代码,用于将当前字符串添加到堆栈中并删除字符(如果它是空白,但不起作用),除此之外,我还尝试了许多其他迭代,但我无法正确执行:(

下面是我最后一次尝试的代码,它仍然没有给出我想要的

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

以下代码应适用于您:

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

Gene是对的,在将字符串放入队列(或堆栈)之前,最好先检查字符串是否为空。如果您已经有一个队列(或堆栈)包含空字符串,就像您的情况一样,您可以使用
队列
(resp.
堆栈
)的
removeIf(谓词)
方法并执行以下操作

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

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

myQ.peek().equals(“”)
在比较字符串时,必须使用.equals方法,而不是==运算符出于某种原因,即使这样,空格字符仍然没有被删除。我甚至尝试用堆栈中的其他值替换它,但不幸的是,结果是相同的。除了我所做的以外,还有其他实现方法吗?我的意思是,其他声明ns?
while(myQ.peek().trim().equals(“”){myQ.poll();}
为什么不首先避免使用空格?我尝试在将空字符串放入堆栈之前检查它,但没有效果。我只是把代码弄乱了。所以我决定将它放入堆栈,然后如果它是空的或是一个空格字符,则只需弹出/删除它,这将使代码在使用l时看起来更短如果我决定以后将其作为词素的一部分添加,我可能能够删除该部分代码。顺便说一句,thx alot,这正是我正在寻找并最终工作的代码。即使在这里,我也从未在搜索中遇到过,因为大多数都与字符串有关,而不是堆栈。对于removin,这仍然不起作用g空白字符。IDK也是,通过阅读它,它似乎是正确的,但在运行它时,它不起作用。似乎是一个明显的解决方案,这真的很难。呵呵。顺便说一句,谢谢您的帮助。非常感谢。:)