java - 基于一个字符而不是其他字符的拆分操作
问题描述
我想根据一个字符拆分我的字符串,而不是其他类似的
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
你能帮我解决这个问题吗?谢谢
解决方案
|
是正则表达式中的特殊字符,因此需要将其转义为\|
,这意味着\\|
在 Java 字符串文字中。
要在独立的 上拆分|
,请使用零宽度负向后看和向前看,以确保它没有在 之前或之后|
。
String data = "data1|data2||data3";
String[] arrayData = data.split("(?<!\\|)\\|(?!\\|)");
for (String s : arrayData)
System.out.println(s);
输出
data1
data2||data3
推荐阅读
- python - 通过命令提示符设置可选系统参数
- r - 如何在 R 中获取数值向量的元素,并创建一个包含从 1 开始的 seq 的新向量:(每个元素)
- node.js - 从 onelogin 进行身份验证并重定向到仪表板
- r - 如何从 R 中的另一个列表列表中删除列表列表?
- python - Scrapy - 重定向到验证码页面时抓取页面
- bash - BASH - OPTARG 中的 getopts 正则表达式
- react-native - TypeError:null 是一个对象(评估'reactNativeImagCropPicker.default.openPicker')
- opengl - LWJGL3 和 OpenGL 是否需要着色器才能渲染?
- typescript - 如何在新的组合 API 中键入计算属性?
- amazon-cognito - 将 Github 身份提供商添加到 AWS Cognito