gpt4 book ai didi

java - 将对象从堆栈传输到堆栈时无法正确复制

转载 作者:太空宇宙 更新时间:2023-11-04 15:02:13 25 4
gpt4 key购买 nike

我试图通过将字符串添加到堆栈中,然后将其弹出到新堆栈中,然后在最后比较它们来检查字符串是否是回文。然而,当弹出到新堆栈时,只有大约一半的元素实际上转移到新堆栈,我不确定为什么。这是代码:

public void menu () {
opt = JOptionPane.showInputDialog("Enter a word to see if it is a Palindrome: ");
String temp = transform(opt);

Stack stack = new Stack ();
Stack stack2 = new Stack();

for (int i = 0; i < temp.length(); i++) {
stack.push(temp.charAt(i));
}

System.out.println(stack);

for (int j = 0; j <= stack.size(); j++) {
Object a = stack.pop();
stack2.push(a);
}
System.out.println(stack2);

}

我唯一能想到的是我的 transform 方法通过使用 stack.replaceAll() 消除了任何空白,但是当我打印出第一个堆栈时,没有额外的字符或类似 ,,H, 等的东西。它只是打印出字符,仅此而已。关于为什么会这样或者是否有更好的方法来解决这个问题有什么建议吗?

最佳答案

在每次迭代中,您同时增加 j 并减少堆栈大小。他们将在半路相遇。将循环控制替换为

while (stack.size() > 0)

关于java - 将对象从堆栈传输到堆栈时无法正确复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22446299/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com