题目
给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。
注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。
示例 1:
输入: "Let's take LeetCode contest"
输出: "s'teL ekat edoCteeL tsetnoc"
解答
思路:
1.把句子用" "切割为一个数组;
2.分别操作每一个单词;
3.用StringBuilder来存放每一次反转的单词;
4.根据规则加入" ",最后一个单词的后面没有" ";
5.把StringBuilder转换成字符串就是最终的结果。
代码:
/**
* 反转一句话中的每一个单词。
* @param s : 输入的字符串,每一个单词之间用" "分隔。
* @return : 返回反转后的结果。
*/
public String reverseWords(String s) {
//先用“ ”把字符串分成一个数组。
String[] split = s.split(" ");
int len = split.length;
StringBuilder sb = new StringBuilder();
//分别反转每一个单词之后,把结果存到StringBuilder中。
for (int i = 0; i < len; i++) {
for (int j = split[i].length() - 1; j >= 0; j--) {
sb.append(split[i].substring(j, j + 1));
}
//每一个单词之间用" "来分隔。
if (i < len - 1) {
sb.append(" ");
}
}
return sb.toString();
}