1.41 反转Java中的字符串 | Java Debug 笔记

364 阅读1分钟

本文正在参加「Java主题月 - Java Debug笔记活动」,详情查看 活动链接

Debug 笔记 <反转Java中的字符串>

提问

我的"Hello World"保存在一个名为的String变量中。

我需要打印,但是要反转。

我怎样才能做到这一点?我知道Java中已经内置了某种功能。

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

回答一

您可以使用此:

new StringBuilder(hi).reverse().toString()

或者,对于JDK 1.5之前的版本,请使用java.util.StringBuffer代替StringBuilder-

它们具有相同的API。感谢评论员指出,StringBuilder如今在没有并发问题的情况下,这是首选方法。

回答二

您可以使用以下方法解决:

StringBuilderStringBufferchar[]

public static String reverse(String input){
    char[] in = input.toCharArray();
    int begin=0;
    int end=in.length-1;
    char temp;
    while(end>begin){
        temp = in[begin];
        in[begin]=in[end];
        in[end] = temp;
        end--;
        begin++;
    }
    return new String(in);
}

回答三

public static String reverseIt(String source) {
    int i, len = source.length();
    StringBuilder dest = new StringBuilder(len);

    for (i = (len - 1); i >= 0; i--){
        dest.append(source.charAt(i));
    }

    return dest.toString();
}

回答四

String string="whatever";
String reverse = new StringBuffer(string).reverse().toString();
System.out.println(reverse);

回答五

我通过使用以下两种方式来做到这一点:

通过CHARACTERS反向字符串:

public static void main(String[] args) {
    // Using traditional approach
    String result="";
    for(int i=string.length()-1; i>=0; i--) {
        result = result + string.charAt(i);
    }
    System.out.println(result);

    // Using StringBuffer class
    StringBuffer buffer = new StringBuffer(string);
    System.out.println(buffer.reverse());    
}

用WORDS反向字符串:

public static void reverseStringByWords(String string) {
    StringBuilder stringBuilder = new StringBuilder();
    String[] words = string.split(" ");

    for (int j = words.length-1; j >= 0; j--) {
        stringBuilder.append(words[j]).append(' ');
    }
    System.out.println("Reverse words: " + stringBuilder);
}

文章翻译自Stack Overflow :stackoverflow.com/questions/7…