当前位置:   article > 正文

LeetCode.2788. 按分隔符拆分字符串

LeetCode.2788. 按分隔符拆分字符串

题目

题目链接

分析

题目的意思是给我们一个字符串数组和一个分隔符,让我们按照分隔符把字符串数组分割成新的字符串数组。

看到这个描述,这不就是直接就是利用 按照分隔符分割字符串的系统库函数split(),这个函数的意思就是 把一个字符串按照你给定的分隔符分割成字符串数组,如:“one.two.three”

    public static void main(String[] args) {
        String s = "one.two.three";
        String[] strings = s.split(".");
        System.out.println(Arrays.asList(strings));
    }
  • 1
  • 2
  • 3
  • 4
  • 5

运行代码后发现:
在这里插入图片描述

????

什么鬼,不应该是 [one, two, three]才对嘛,点击查看字符串的split()方法查看源码,注释上明确写了,split()参数是正则表达式,而.在正则表达式有特殊的含义,所以我们应该参数写\\.,利用转义字符进行转义,写出的代码如下:

    public static void main(String[] args) {
        String s = "one.two.three";
        String[] strings = s.split("\\.");
        System.out.println(Arrays.asList(strings));
    }
  • 1
  • 2
  • 3
  • 4
  • 5

运行结果:
在这里插入图片描述


代码

我们现在已经知道了如何利用给定分割字符分割字符串了,我们就可以写代码了。

class Solution {
    public List<String> splitWordsBySeparator(List<String> words, char separator) {
        List<String> res = new ArrayList<>();
        for(String s : words) {
            // 按照给定分割字符分割字符串
            String[] str = s.split("\\"+String.valueOf(separator));
            for(String st : str) {
                // 为了去除空字符串
                if(st != null && st.length() > 0)
                res.add(st);
            }
        }
        return res;
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

运行:
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/算法优化者/article/detail/60466
推荐阅读
相关标签
  

闽ICP备14008679号