[英]Reversing A String. Every other word reversing
所以我有一個for循環,它正在反轉字符串中的每個其他單詞。 我無法確定導致這種情況的原因。
for (int i = 0; i < words.length; i++)
{
stringBuilder.append(words[(words.length-1)-i]);
stringBuilder.reverse()
}
newMessage = stringBuilder.toString();
return Message
stringBuilder.reverse()
反轉您在每次迭代時正在構建的整個字符串。
嘗試:
for (int i = 0 ; i < words.length ; i++) {
String word = words[(words.length-1)-i];
String reverse = new StringBuilder(word).reverse().toString();
stringBuilder.append(reverse).append(" ");
}
甚至更簡單,最后倒車:
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.reverse(); 正在顛倒整個單詞注釋,該行和您的代碼不會反轉您的新消息
首先,你的循環比它需要的更復雜。 如果你想從最后開始反轉單詞,你應該只使用循環索引來做到這一點,你不需要(words.length-1)-i
計算。
另一件事,當你在StringBuilder
上調用reverse()
,你正在反轉整個字符串而不僅僅是附加的部分。 你可以做的是使用臨時StringBuilder
來執行反轉,使用臨時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
}
如果需要,可以在一行代碼中添加(添加注釋以便澄清):
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"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.