Java 反转字符串。每隔一个字
所以我有一个for循环,它将字符串中的每一个单词都反转。我无法确定是哪种情况导致了这种情况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 (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()
时,您正在反转整个字符串,而不仅仅是附加的部分。您可以使用tempStringBuilder
执行冲销,使用tempString
变量将冲销与追加分开
大概是这样的:
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"