首页 > 解决方案 > 基于一个字符而不是其他字符的拆分操作

问题描述

我想根据一个字符拆分我的字符串,而不是其他类似的

String data = "data1|data2||data3";

而做String arrayData[] = data.split("|");是给我输出像

arrayData[0] = data1
arrayData[1] = data2
arrayData[2] = data3

但我想要像这样的输出

arrayData[0] = data1

arrayData[1] = data2||data3

你能帮我解决这个问题吗?谢谢

标签: javastringsplit

解决方案


|是正则表达式中的特殊字符,因此需要将其转义为\|,这意味着\\|在 Java 字符串文字中。

要在独立的 上拆分|,请使用零宽度负向后看和向前看,以确保它没有在 之前或之后|

String data = "data1|data2||data3";
String[] arrayData = data.split("(?<!\\|)\\|(?!\\|)");
for (String s : arrayData)
    System.out.println(s);

输出

data1
data2||data3

推荐阅读