151. 反转字符串中的单词

2024/4/24 算法

题目链接:151. 反转字符串中的单词 (opens new window)

这题主要是熟悉java一些库的调用,先放代码:

class Solution {
    public String reverseWords(String s) {
        s=s.trim();//去除两边多余空格
        List<String> list=Arrays.asList(s.split("\\s+"));//将字符串按空格切割
        Collections.reverse(list);//反转切割后的字符串
        return String.join(" ",list);//再将字符串连接上
    }
}

里面涉及到的三个方法,下边介绍。

# 1. trim() 方法用于删除字符串的头尾空白符

# 语法

public String trim()

# 返回值

删除头尾空白符的字符串。

# 实例

public class Test {
    public static void main(String args[]) {
        String Str = new String("    www.runoob.com    ");
        System.out.print("原始值 :" );
        System.out.println( Str );

        System.out.print("删除头尾空白 :" );
        System.out.println( Str.trim() );
    }
}

执行结果为:

原始值 :    www.runoob.com    

删除头尾空白 :www.runoob.com

# 2. split() 方法根据匹配给定的正则表达式来拆分字符串

注意: . 、 $、 | 和 * 等转义字符,必须得加 \。删除一个空格可以直接用" ",但是如果删除一个或多个就是"\s+"。

注意:多个分隔符,可以用 | 作为连字符。

# 语法

public String[] split(String regex, int limit)

# 参数

  • regex -- 正则表达式分隔符。
  • limit -- 分割的份数。

# 返回值

切割后的字符串数组

# 实例

public class Test {
    public static void main(String args[]) {
        String str = new String("Welcome-to-Runoob");
 
        System.out.println("分隔符返回值 :" );
        for (String retval: str.split("-")){
            System.out.println(retval);
        }
 
        System.out.println("");
        System.out.println("分隔符设置分割份数返回值 :" );
        for (String retval: str.split("-", 2)){
            System.out.println(retval);
        }
 
        System.out.println("");
        String str2 = new String("www.runoob.com");
        System.out.println("转义字符返回值 :" );
        for (String retval: str2.split("\\.", 3)){
            System.out.println(retval);
        }
 
        System.out.println("");
        String str3 = new String("acount=? and uu =? or n=?");
        System.out.println("多个分隔符返回值 :" );
        for (String retval: str3.split("and|or")){
            System.out.println(retval);
        }
    }
}

执行结果为:

分隔符返回值 :

Welcome

to

Runoob

分隔符设置分割份数返回值 :

Welcome

to-Runoob

转义字符返回值 :

www

runoob

com

多个分隔符返回值 :

acount=?

 uu =?

 n=?

# 3. String join()方法连接给定的字符串并返回连接的字符串

# 语法

public static String join(CharSequence delimiter,CharSequence... elements)

# 参数

第一个参数指定用于连接多个字符串的分隔符,第2个参数是需要进行拼接的元素,可以是多个字符串,可以是字符串数组,可以是字符串队列。

# 返回值

返回一个新的String,该String由CharSequence元素的副本组成,这些元素与指定的分隔符的副本连接在一起。

# 实例

public static void main(String[] args){
        //字符串数组
        String[] strArray = new String[]{"ni","zhen","hao","kan"};
 
        //字符串队列
        List<String> strList = new ArrayList<String>();
        //添加元素
        strList.add("ni");
        strList.add("zhen");
        strList.add("hao");
        strList.add("kan");
 
        //第2个参数是字符串数组
        String a = String.join("!",strArray);
        //第2个参数是字符串队列
        String b = String.join("!",strList);
        //第1个参数之后是多个字符串
        String c = String.join("!","ni","zhen","hao","kan");
 
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
    }

执行结果为:

ni!zhen!hao!kan

ni!zhen!hao!kan

ni!zhen!hao!kan