欢迎访问宙启技术站
智能推送

如何使用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!",翻转了每个单词的顺序。