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

编写Java函数,将单词翻转顺序输出

发布时间:2023-06-24 15:00:19

题目描述

设计一个函数reverseWords(String sentence),实现将句子中的单词顺序翻转输出。

例如,输入:“Hello World”,输出:“World Hello”。

函数要求

1. 函数输入参数为String类型,表示要翻转的句子;

2. 函数返回值类型为String类型,表示翻转后的句子;

3. 如果参数为空,函数返回null;

4. 翻转后的单词不需要做其他的处理,只需将单词顺序翻转输出即可;

5. 单词内部的字母顺序保持不变;

6. 句子内的单词只包含字母和数字,不包含符号。

函数设计

1. 判断函数输入参数是否为空,如果为空则返回null;

2. 将句子以空格为分隔符拆分成单词数组;

3. 创建一个空的StringBuilder对象,从数组尾部开始遍历单词数组,每次将单词追加到StringBuilder对象中,单词之间用空格分隔;

4. 将StringBuilder对象转换成String类型并返回。

Java 代码实现

public class ReverseWords {

    public static String reverseWords(String sentence) {

        if (sentence == null || sentence.equals("")) {

            return null;

        }

        String[] words = sentence.split(" ");

        StringBuilder sb = new StringBuilder();

        for (int i = words.length - 1; i >= 0; i--) {

            sb.append(words[i] + " ");

        }

        return sb.toString().trim();

    }

}

使用Junit测试

import org.junit.Assert;

import org.junit.Test;

public class ReverseWordsTest {

    @Test

    public void testReverseWords() {

        String test1 = "Hello World";

        String expect1 = "World Hello";

        String result1 = ReverseWords.reverseWords(test1);

        Assert.assertEquals(expect1, result1);

        String test2 = " ";

        String expect2 = null;

        String result2 = ReverseWords.reverseWords(test2);

        Assert.assertEquals(expect2, result2);

        String test3 = "abc 123";

        String expect3 = "123 abc";

        String result3 = ReverseWords.reverseWords(test3);

        Assert.assertEquals(expect3, result3);

    }

}