我需要反转给定字符串中 5 个或更多字符的长单词。例如: * 给定的字符串:我的名字是迈克尔。 * 输出:我的名字是 leahciM。
句子的其余部分保持不变,只是那些长单词被颠倒了。
到目前为止,我想到了这个:
public static String spinWords(String sentence) {
String[] splitWords = sentence.split(" ");
String reversedSentence = "";
String reversedWord = "";
for (String str : splitWords) {
if (str.length() >= 5) {
for (int i = str.length() - 1; i >= 0; i--)
reversedWord += (str.charAt(i) + " ");
}
}
}
我把那些话颠倒了,但是 1)它们在一个字符串中,没有空格 2) 我不知道如何将它们放回字符串中的位置
最佳答案
这里有一个建议:
编写一个反转字符串的方法:
private static String reverse(String s) { ... }
然后在您的主要方法中,在需要时调用它:
if (str.length() >= 5) str = reverse(str);
然后您需要将单词重新组合在一起,大概是在
reversedSentence
中字符串:reversedSentence += str + " "; //you will have an extra space at the end
旁注:
- 使用
StringBuilder
对于较长的句子,可能比字符串连接更有效。 - 你可以把所有的词放回
List<String>
在循环中调用reversedSentence = String.join(" ", list)
循环后 - 反转字符串可以在一行中完成 - 您应该在 stackoverflow 上找到许多相关的问答。
关于java - 反转字符串中的某些单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41337516/