【发布时间】:2012-07-17 16:48:54
【问题描述】:
这段代码在main函数里面:
Scanner input = new Scanner(System.in);
System.out.println("Type a sentence");
String sentence = input.next();
Stack<Character> stk = new Stack<Character>();
int i = 0;
while (i < sentence.length())
{
while (sentence.charAt(i) != ' ' && i < sentence.length() - 1)
{
stk.push(sentence.charAt(i));
i++;
}
stk.empty();
i++;
}
这是empty()函数:
public void empty()
{
while (this.first != null)
System.out.print(this.pop());
}
它不能正常工作,因为输入example sentence 我得到了这个输出:lpmaxe。第一个字母丢失,循环停止,而不是从空格算到句子的下一部分。
我正在努力实现这一目标:
This is a sentence ---> sihT si a ecnetnes
【问题讨论】:
-
倒转句子中的单词和句子中的字符之间存在细微差别。您想归档两者中的哪一个?
-
我想反转句子中每个单词中的字符,同时保持相同的单词顺序。你可以说这是作业——我只是在网上寻找问题,以提高我对堆栈和队列的理解。
-
您是否尝试过检查
sentence的值是什么,和/或Scanner.next()的文档说它会做什么? -
next() 只得到一个字。你的双循环在第一轮之后没有做任何事情。
-
如果是作业,就这样标记。