【发布时间】:2013-01-19 23:42:42
【问题描述】:
我是编程新手,我正在学习初级编程课程。我试着四处寻找我的答案,我发现了可能有效的结果,但我不明白如何在使用堆栈时实现它们。我试图在不反转整个字符串的情况下反转字符串的单个单词。
例如:用户输入句子“Pies are great!”我需要输出为“seiP era !taerg”
到目前为止,我已经成功编写了一个程序,它将完全反转一个字符串,所以使用上面的例子的输出是:“!taerg era seiP” 正如你所看到的,我想反转单词本身而不颠倒单词的顺序,但我必须使用堆栈获取输入。
以下是我目前所拥有的:
public class ReversedString{
private static ArrayStack<String> stack;
public static void main(String[] args) {
stack = new ArrayStack<String>();
String string = "";
String stringReversed = "";
@SuppressWarnings("resource")
Scanner scanner = new Scanner(System.in);
System.out.print("Enter the string that you want to reverse: ");
string = scanner.nextLine();
string.split(" ");
for(int i=0; i<string.length(); i++){
stack.push(string.substring(i, i+1));
}
while(!stack.isEmpty()){
stringReversed += stack.pop();
}
System.out.println("The reverse of the string is: " + stringReversed);
【问题讨论】:
-
如果你能够反转字符串,单词有什么问题?
-
我不明白如何利用堆栈来压入字符串并弹出单个反转的单词。
-
而不是完整的字符串推送单个单词并执行相同操作,直到处理整个字符串。