Java 反转字符串。每隔一个字

Java 反转字符串。每隔一个字,java,string,Java,String,所以我有一个for循环,它将字符串中的每一个单词都反转。我无法确定是哪种情况导致了这种情况 for (int i = 0; i < words.length; i++) { stringBuilder.append(words[(words.length-1)-i]); stringBuilder.reverse() } newMessage = stringBuilder.toString(); return Message for(int i=0;i

所以我有一个for循环,它将字符串中的每一个单词都反转。我无法确定是哪种情况导致了这种情况

for (int i = 0; i < words.length; i++) 
{
    stringBuilder.append(words[(words.length-1)-i]);
    stringBuilder.reverse()
}
newMessage = stringBuilder.toString();
return Message
for(int i=0;i
stringBuilder.reverse()
反转当前在每次迭代中构建的整个字符串

尝试:


stringBuilder.reverse();正在反转整行文字注释,而您的代码不会反转新消息首先,您的循环比需要的更复杂。如果要反转从结尾开始的单词,只需使用循环索引即可,不需要
(words.length-1)-i
计算

另外,当您在
StringBuilder
上调用
reverse()
时,您正在反转整个字符串,而不仅仅是附加的部分。您可以使用temp
StringBuilder
执行冲销,使用temp
String
变量将冲销与追加分开

大概是这样的:

StringBuilder reversedBuilder = new StringBuilder();
for (int i = words.length - 1; i >= 0; i --) 
{
    String reversed = reversedBuilder.append(words[i]).reverse().toString(); // reverse the word
    stringBuilder.append(reversed).append(" ");
    reversedBuilder.setLength(0); // clear the reversed
}
如果需要,您可以在一行代码中完成此操作(添加注释以进行说明):


目标是保持单词的位置,但要颠倒单词。示例:你好,世界是olleh dlrowI添加了您正在寻找的解决方案。谢谢!这很好用。我一定要记住这件事
for (int i = 0 ; i < words.length ; i++) {
    stringBuilder.append(words[(words.length-1)-i]).append(" ");
}
newMessage = stringBuilder.reverse().toString();
for (String w : words) {
    String reverse = new StringBuilder(w).reverse().toString();
    stringBuilder.append(reverse).append(" ");
}
newMessage = stringBuilder.toString();
StringBuilder reversedBuilder = new StringBuilder();
for (int i = words.length - 1; i >= 0; i --) 
{
    String reversed = reversedBuilder.append(words[i]).reverse().toString(); // reverse the word
    stringBuilder.append(reversed).append(" ");
    reversedBuilder.setLength(0); // clear the reversed
}
for (int i = words.length - 1; i >= 0; i --) 
{
    stringBuilder.append(new StringBuilder()  // create a temp string builder
                            .append(words[i]) // add the current word to temp string builder
                            .reverse()        // reverse the current word in the temp string builder
                            .toString())      // add the reversed word to stringBuilder
                 .append(" ");                // add the space to stringBuilder
}
var string = "hello world";

function reverseWords(string) {
   var words = string.split(' '),
   finals = [];

   words.forEach(function(word) {
     finals.push(word.split('').reverse().join(''););
   });

   return finals.join(' ');
 }

 reverseWords(string); // "olleh dlrow"