字符逆序 java

版权声明:博客内容为本人自己所写,请勿转载。 https://blog.csdn.net/weixin_42805929/article/details/82891756

字符逆序 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;
	}
}

猜你喜欢

转载自blog.csdn.net/weixin_42805929/article/details/82891756