我想要做的是让eval变量将每个字母放入一个堆栈然后打印出来。我得到一个EmptyStackException错误(假设这意味着堆栈中没有任何东西)。我不明白的是我认为eval字符串被放入变量堆栈。为什么它是空的?Stack Stack in Empty EmptyStackException错误
public static void main(String[] args)
{
Stack<String> variable = new Stack<String>();
String eval = StdIn.readString();
String alphabet = "abcdefghjiklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
for (int i = 0; i < eval.length(); i++)
{
eval = eval.substring(i,i);
if (eval.equals(alphabet.substring(0, 52)))// checks if eval is equal to any letter of alphabet
{
variable.push(eval);
System.out.println(variable.pop());
}
}
}
}
进出口使用日食
样品试验:
input: hello
Exception in thread "main" java.util.EmptyStackException
at java.util.Stack.peek(Unknown Source)
at java.util.Stack.pop(Unknown Source)
at eval.main(eval.java:31)
您的代码要求eval匹配整个字母表。 – nullpotent
这里要做的一件有用的事情是发布一些示例运行和回溯。 – Colleen
eval等于我输入的任何单词。例如,我希望程序通过在单独一行中打印每个字母来打印“单词”。 – iii