Java-如何拆分和忽略具有此特殊字符的字符串
这可能很简单。但我正在尝试最好的解决方案。有人能用Java或Java 8帮助我吗 问题Java-如何拆分和忽略具有此特殊字符的字符串,java,java-8,Java,Java 8,这可能很简单。但我正在尝试最好的解决方案。有人能用Java或Java 8帮助我吗 问题 我有一个字符串URL/api/data/stiffers:stiffer state/stiffer=monkey king 0/1?fields=(status;statistics;speed)。我想按字符“/”拆分,但不应拆分stiffer=monkey king 0/1。因为它还有一个字符“/” 有人能帮我写代码吗 更清楚地说,输出应该是 api 数据 刚性:刚性状态 stiffer=monkey k
我有一个字符串URL
/api/data/stiffers:stiffer state/stiffer=monkey king 0/1?fields=(status;statistics;speed)
。我想按字符“/”拆分,但不应拆分stiffer=monkey king 0/1
。因为它还有一个字符“/”
有人能帮我写代码吗
更清楚地说,输出应该是
api数据
刚性:刚性状态
stiffer=monkey king 0/1?字段=(状态;统计;速度)假设
/
不应跟在数字后面,然后它才算作分隔符:
Arrays.stream(test.split("/(?!\\d)")).filter(s -> !s.isEmpty())
.forEach(System.out::println);
很抱歉,
因为它还有一个字符“/”
不清楚(至少对我来说)。它在哪里?如果你总是有数字围绕着这个/而不是其他斜杠,你可以使用正则表达式在/重新更新之前和之后检查数字:我们知道你不想在哪个/
上拆分,我们不知道为什么会这样。您使用了哪些规则来确定这一点?非主题注释:不要在代码中使用
,而是使用两个空格和换行符(回车/回车键)。您可以将拆分()
与正则表达式一起使用-我建议使用具有负前瞻性的正则表达式,如\/(?!0)
在这种情况下,我们实际上不需要转义/
,所以\\/(?!\\d)
可能只是/(?!\\d)
如果/
跟在字符后面?一个提示是,字符串中始终有=
符号,我们不希望拆分/
。