字符逆序 java
题目描述
将一个字符串str的内容颠倒过来,并输出。str的长度不超过100个字符。 如:输入“I am a student”,输出“tneduts a ma I”。
输入参数:
inputString:输入的字符串
返回值:
输出转换好的逆序字符串
输入描述:
输入一个字符串,可以有空格
输出描述:
输出逆序的字符串
示例1
输入
I am a student
输出
tneduts a ma I
代码1:推荐使用
import java.util.*;
import java.io.*;
public class Main{
public static void main(String[] args) throws IOException{
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
String st = br.readLine().toString();
StringBuffer sb = new StringBuffer(st);
System.out.println(sb.reverse());
}
}
代码2:采用先进行局部交换,在进行整体交换
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String[] st = sc.nextLine().split(" ");
String str = reverse(st);
String[] s = str.split(" ");
for (int i = s.length - 1; i >= 0; i--) {
System.out.print(s[i] + " ");
}
}
public static String reverse(String[] st) {
String str = "";
for (int i = 0; i < st.length; i++) {
char[] c = st[i].toCharArray();
// 此处使用双指针法进行交换操作
for (int j = 0, k = c.length - 1; j <= c.length / 2 && k >= c.length / 2; j++, k--) {
if (c[j] != c[k]) {
char temp = c[j];
c[j] = c[k];
c[k] = temp;
}
}
for (int k = 0; k < c.length; k++) {
str = str + c[k];
}
str = str + " ";
}
return str;
}
}