You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java如何按空格与双短横线(--)分割字符串且保留--为单独元素?

问题排查
  • 原有代码的错误点:你写的[\\s -]是正则字符类,仅支持匹配单个字符,含义是把单个空格、单个短横都作为独立分隔符。原字符串中的--会被识别为两个连续的短横分隔符,相邻分隔符之间会生成空字符串,并没有实现你想要的「把--作为整体分隔符」的逻辑。
实现方案

该需求完全可以实现,你可以使用Java正则的零宽断言特性,在分割时保留--作为独立数组元素,示例代码如下:

String t = "this is my--test string";
String[] m = t.split("\\s+|(?=--)|(?<=--)");
  • 正则逻辑说明:
    • \\s+:匹配1个及以上连续空格,作为分隔符直接去掉
    • (?=--):正向零宽断言,匹配--的前侧位置,分割后--会作为独立的后续元素
    • (?<=--):反向零宽断言,匹配--的后侧位置,分割后--会作为独立的前序元素

运行代码后输出的数组结果和你期望的完全一致:["this", "is", "my", "--", "test", "string"]

内容的提问来源于stack exchange,提问作者e.f.a.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 01:36:05