有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

数组在java中使用“,”而不是“,”拆分字符串

我有这样一个字符串:

123,TV,August 14, 2020,"This is a fantasy series, and top rated"

我用的是字符串。但我的分隔符应仅基于逗号分隔字符串,不带尾随空格

预期产量

["123","TV","August 14, 2020","This is a fantasy series, and top rated"]

实际产量

["123","TV","August 14"," 2020","This is a fantasy series", " and top rated"]

考虑到所有逗号,它正在拆分字符串。我只想考虑没有尾随空间或双引号(“”)的逗号。

有人能给我一些建议吗


共 (1) 个答案

  1. # 1 楼答案

    您可以与Negative Lookahead(?!\s)组合以断言逗号后没有空格

    String s = "123,TV,August 14, 2020 ,\"This is a fantasy series, and top rated\"";
    List<String> parts = Arrays.stream(s.split(",(?!\\s)"))
            .map(x -> x.replaceAll("^[\"\\s]|[\"\\s]$", ""))
            .collect(Collectors.toList());
    for (String p : parts) {
        System.out.println(">>" + p + "<<");
    }
    
    >>123<<
    >>TV<<
    >>August 14, 2020<<
    >>This is a fantasy series, and top rated<<