【问题标题】:String reverse using Java'sstringbuilder使用 Java 的 stringbuilder 反转字符串
【发布时间】:2016-09-29 05:13:45
【问题描述】:

我用Java开发做一个小项目。

我想要字符串反转。 如果我输入“我是女孩”,打印反转...

我已经尝试使用 StringBuilder。 我也使用 StringBuffer 语法编写它... 但是我失败了... 它没有打印我的愿望......

愿望

我的打印 -> “我是一个 lrig”

“我是个女孩”->“我是个女孩”​​trong> REVERSE!!

我该怎么办?..

请帮帮我谢谢~!!!

public String reverse() {        
    String[] words = str.split("\\s");       
    StringTokenizer stringTokenizer = new StringTokenizer(str, " ");

    for (String string : words) {
        System.out.print(string);
    }

    String a = Arrays.toString(words);

    StringBuilder builder = new StringBuilder(a);

    System.out.println(words[0]);

    for (String st : words){
        System.out.print(st);
    }

    return "";     
}

【问题讨论】:

标签: java string reverse stringbuilder stringbuffer


【解决方案1】:

执行此操作的 Java 8 代码:

public static void main(String[] args) {
    String str = "I am a girl";
    StringBuilder sb = new StringBuilder();
    // split() returns an array of Strings, for each string, append it to a StringBuilder by adding a space.
    Arrays.asList(str.split("\\s+")).stream().forEach(s -> {
        sb.append(new StringBuilder(s).reverse() + " ");
    });
    String reversed = sb.toString().trim(); // remove trailing space
    System.out.println(reversed);
}

O/P:

I ma a lrig

【讨论】:

  • @한송송이 - 它称为 lambda 表达式。你可以阅读它们:)
【解决方案2】:

如果您不想使用lambda,那么您也可以尝试此解决方案

String str = "I am a girl";
        String finalString = "";
        String s[] = str.split(" ");
        for (String st : s) {
            finalString += new StringBuilder(st).reverse().append(" ").toString();
        }
        System.out.println(finalString.trim());
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-01
    • 1970-01-01
    • 2011-07-22
    • 2013-03-07
    • 2022-01-25
    • 2019-03-09
    相关资源
    最近更新 更多