Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Java';sstringbuilder_Java_String_Reverse_Stringbuilder_Stringbuffer - Fatal编程技术网

使用Java';sstringbuilder

使用Java';sstringbuilder,java,string,reverse,stringbuilder,stringbuffer,Java,String,Reverse,Stringbuilder,Stringbuffer,我用Java开发了一个小项目 我想把线倒过来。 如果我输入“我是一个女孩”,则 我已经尝试使用StringBuilder了。 我还使用StringBuffer语法编写它。。。 但是我失败了。。。 这不是我的愿望 愿望 带打印的My->“我是一个lrig” “我是一个女孩”->“我是一个女孩”相反 我怎么办 请帮帮我谢谢~ public String reverse() { String[] words = str.split("\\s"); Stri

我用Java开发了一个小项目

我想把线倒过来。 如果我输入“我是一个女孩”,则

我已经尝试使用StringBuilder了。 我还使用StringBuffer语法编写它。。。 但是我失败了。。。 这不是我的愿望

愿望

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

“我是一个女孩”->“我是一个女孩”相反

我怎么办

请帮帮我谢谢~

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 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:


如果您不想使用
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());
    }

OP不希望整个字符串被反转,她希望每个标记(由空格分隔)都被反转。StringBuilder中已经有一个reverse()方法@한송송이 - 它被称为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());
    }