這結尾的詞是我的教授分配的分配:使用堆棧來翻轉句子的單詞。繼續閱讀文字,並將它們添加到堆棧,直到你有,在一個時期
使用堆棧扭轉一個句子的單詞。繼續閱讀文字,並將它們添加到堆棧中,直到有一個詞在一段時間內結束。發生這種情況時,請將文字從堆疊中彈出並打印出來。例如,對於輸入「這是一場內戰時期」。你應該輸出「戰爭時期的民間是它」。注意大小寫和標點符號的變化。
我到目前爲止的程序顛倒了單詞的順序,但我不知道如何在期間停止它,更改大小寫,並移動標點符號。我怎麼做?
import java.util.Scanner;
import java.util.Stack;
import java.util.regex.Pattern;
public class ReverseWordsInString
{
//main method
public static void main(String[] args)
{
Scanner scanner = new Scanner(System.in);
System.out.printf("1. Enter string to reverse : ");
String inputString = scanner.nextLine();
if (inputString == null || inputString.length() == 0)
{
System.out.println("Enter the valid string");
return;
}
String reverse = reverseStringWordWise_Stack(inputString);
System.out.printf("\n3. Reverse string using stack is : %s", reverse);
}
//reverses the string using a stack
private static String reverseStringWordWise_Stack(String inputString)
{
String[] arrString = inputString.trim().split(Pattern.quote(" "));
Stack stack = new Stack();
for(String input : arrString)
{
stack.push(input);
}
StringBuilder builder = new StringBuilder();
while(!stack.isEmpty())
{
builder.append(stack.pop()).append(" ");
}
return builder.toString();
}
}
對於步驟2上該行「String element = stack.pop();」我不斷收到類型不匹配錯誤。請幫助 – Hogwartsishome
@Hogwartsishome將其更改爲'stack.pop()。toString()',我已經更新了答案。 –