字符串倒转,以空格为间隔

这个题目在Leetcode上有做过,不难。贴上我的代码方法。

    //我的方法,效率高
    public String reverseWords1(String s) {
        String[] strlist = s.trim().split(" +");//split的参数是正则表达式

        //用StringBuffer的效率要比String高一些,这里用String也是可以的
        StringBuffer sb = new StringBuffer();

        for(int i = strlist.length-1; i>=0; i--){
            sb.append(strlist[i] + " ");
        }

        return sb.toString().trim();
    }

很好理解,就是把字符串用split(" +")的方法拆开String数组,然后将这个数组倒序拼接在一起。


下面这个方法是我在Leetcode上看到别人的做法,代码行数很少,效率略比上个方法低一些,但是灵活运用了JDK的方法,降低了代码的复杂度。

    //别人的方法,只用了三行代码,但是效率不是很高
    public String reverseWords(String s) {
        String[] words = s.trim().split(" +");
        Collections.reverse(Arrays.asList(words));
        return String.join(" ", words);
    }

你可能感兴趣的:(算法,Java,面试)