我有“Hello World”保存在一个名为hi的字符串变量中。

我需要打印出来,但要颠倒过来。

我该怎么做呢?我知道Java中已经内置了这样一个函数。

相关:用Java反向“Hello World”字符串的每一个单词


当前回答

下面是一个低级的解决方案:

import java.util.Scanner;

public class class1 {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String inpStr = in.nextLine();
        System.out.println("Original String :" + inpStr);
        char temp;
        char[] arr = inpStr.toCharArray();
        int len = arr.length;
        for(int i=0; i<(inpStr.length())/2; i++,len--){
            temp = arr[i];
            arr[i] = arr[len-1];
            arr[len-1] = temp;
        }

        System.out.println("Reverse String :" + String.valueOf(arr));
    }
}

其他回答

我尝试了,只是为了好玩,通过使用一个堆栈。下面是我的代码:

public String reverseString(String s) {
    Stack<Character> stack = new Stack<>();
    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < s.length(); i++) {
        stack.push(s.charAt(i));
    }
    while (!stack.empty()) {
        sb.append(stack.pop());
    }
    return sb.toString();

}

你也可以试试这个:

public class StringReverse {
    public static void main(String[] args) {
        String str = "Dogs hates cats";
        StringBuffer sb = new StringBuffer(str);
        System.out.println(sb.reverse());
    }
}

字符串(String s) {

    String reversedWords = "";

    if(s.length()<=0) {
        return reversedWords;
    }else if(s.length() == 1){
        if(s == " "){
            return "";
        }
        return s;
    }

    char arr[] = s.toCharArray();
    int j = arr.length-1;
    while(j >= 0 ){
        if( arr[j] == ' '){
            reversedWords+=arr[j];
        }else{
            String temp="";
            while(j>=0 && arr[j] != ' '){
                temp+=arr[j];
                j--;
            }
            j++;
            temp = reverseWord(temp);
            reversedWords+=temp;
        }
        j--;

    }

    String[] chk = reversedWords.split(" ");

    if(chk == null || chk.length == 0){
        return "";
    }

    return reversedWords;



}

public String reverseWord(String s){

    char[] arr = s.toCharArray();

    for(int i=0,j=arr.length-1;i<=j;i++,j--){
        char tmp = arr[i];
        arr[i] = arr[j];
        arr[j] = tmp;
    }
    return String.valueOf(arr);

}

使用charAt()方法

    String name = "gaurav";
    String reversedString = "";
    
    for(int i = name.length()-1; i>=0; i--){
      reversedString = reversedString + name.charAt(i);
    }
    System.out.println(reversedString);

使用toCharArray()方法

String name = "gaurav";
    char [] stringCharArray = name.toCharArray();
    String reversedString = "";
    
    for(int i = stringCharArray.length-1; i>=0; i--) {
      reversedString = reversedString + stringCharArray[i];
    }
    System.out.println(reversedString);

使用Stringbuilder的reverse()方法

    String name = "gaurav";
    
    String reversedString = new StringBuilder(name).reverse().toString();
    
    System.out.println(reversedString);

检查https://coderolls.com/reverse-a-string-in-java/

        String str = "Hello World";

        char[] strCharArr = str.toCharArray();

        for(int i = 0, k= strCharArr.length-1;i != k; i++, k--) {
            char temp = strCharArr[i];
            strCharArr[i] = strCharArr[k];
            strCharArr[k] = temp;
        }

        System.out.println(String.valueOf(strCharArr));