思路:最简单的就是利用栈的FILO的特性,当然也可以用数组,但思路就没这么清晰明了了。
- 先利用spilt()函数将字符串按单词拆分
- 再将拆分的结构压进栈
- 最后出栈,拼接一下即可
代码:
package 瓜子;
import java.util.Scanner;
import java.util.Stack;
//单词逆序问题
public class Main1 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String s = scanner.nextLine();
s = reverse(s);
System.out.println(s);
}
public static String reverse(String s) {
//辅助栈
Stack stack = new Stack();
//按单词拆分字符串
String[] ss = s.split(" ");
for (int i = 0; i < ss.length; i++) {
stack.push(ss[i]);
}
//出栈以及字符串拼接,注意这里不要用String和"+",因为"+"会消耗大量时间和资源
StringBuffer sb = new StringBuffer();
while (!stack.isEmpty()) {
sb.append(stack.pop()+" ");
}
return sb.toString();
}
}

京公网安备 11010502036488号