如何使用Java函数实现字符串中单词的翻转?
发布时间:2023-07-04 06:55:13
在Java中,可以使用函数来实现对字符串中单词的翻转。下面是一个使用Java函数实现字符串中单词翻转的例子:
public class WordReverser {
public static void main(String[] args) {
String input = "Hello World!";
String reversed = reverseWords(input);
System.out.println(reversed);
}
public static String reverseWords(String input) {
// 将字符串按照空格分割成单词数组
String[] words = input.split("\\s+");
// 创建一个StringBuilder对象来存储翻转后的单词
StringBuilder reversed = new StringBuilder();
// 遍历单词数组,逐个翻转并添加到StringBuilder中
for (int i = 0; i < words.length; i++) {
String word = words[i];
String reversedWord = reverseString(word);
reversed.append(reversedWord);
// 如果不是最后一个单词,则添加一个空格分隔符
if (i != words.length - 1) {
reversed.append(" ");
}
}
// 返回翻转后的字符串
return reversed.toString();
}
public static String reverseString(String input) {
// 将字符串转换为字符数组
char[] chars = input.toCharArray();
// 使用双指针法翻转字符数组
int left = 0;
int right = chars.length - 1;
while (left < right) {
char temp = chars[left];
chars[left] = chars[right];
chars[right] = temp;
left++;
right--;
}
// 将字符数组转换回字符串
return new String(chars);
}
}
在上面的例子中,我们定义了一个WordReverser类,并在main方法中示范了如何使用reverseWords函数进行单词翻转。reverseWords函数的输入参数是一个字符串,它首先使用split函数将字符串按照空格分割成单词数组。然后,遍历单词数组,逐个翻转并添加到StringBuilder对象reversed中。最后,将reversed转换为字符串并返回。
为了实现单词翻转,我们还定义了一个辅助函数reverseString,它使用双指针法来逆转一个字符串。
使用上述代码,当我们将字符串"Hello World!"传递给reverseWords函数时,函数将返回"olleH dlroW!",翻转了每个单词的顺序。
