一、题目描述
将一个字符串str的内容颠倒过来,并输出。str的长度不超过100个字符。 如:输入“I am a student”,输出“tneduts a ma I”。
二、代码实现
1、将字符串存进StringBuilder,并使用其reverse()方法
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNextLine()) {
String str = sc.nextLine();
StringBuilder sb = new StringBuilder(str);
System.out.println(sb.reverse().toString());
}
}
}
2、将字符串的每个字符存进栈,利用栈先进后出的特性依次输出
import java.util.Scanner;
import java.util.Stack;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNextLine()) {
String str = sc.nextLine();
Stack<Character> stack = new Stack<>();
for (int i=0; i<str.length(); i++) {
stack.push(str.charAt(i));
}
while (!stack.isEmpty()) {
System.out.print(stack.pop());
}
}
}
}
3、将字符串的所有字符存进一个新的数组中,并实现reverse()方法直接变动数组中的元素以实现逆序
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNextLine()) {
String str = sc.nextLine();
char[] arr = str.toCharArray();
reverse(arr, 0, arr.length-1);
/*
for (int i=0; i<arr.length; i++) {
System.out.print(arr[i]);
}
*/
//
//字符数组转成字符串
String result = new String(arr);
System.out.println(result);
}
}
public static void reverse(char[] arr, int start, int end) {
while (start < end) {
char temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
start++;
end--;
}
}
}