Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java-如何拆分和忽略具有此特殊字符的字符串_Java_Java 8 - Fatal编程技术网

Java-如何拆分和忽略具有此特殊字符的字符串

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

这可能很简单。但我正在尝试最好的解决方案。有人能用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 king 0/1?字段=(状态;统计;速度)

假设
/
不应跟在数字后面,然后它才算作分隔符:

 Arrays.stream(test.split("/(?!\\d)")).filter(s -> !s.isEmpty())
            .forEach(System.out::println);

很抱歉,
因为它还有一个字符“/”
不清楚(至少对我来说)。它在哪里?如果你总是有数字围绕着这个/而不是其他斜杠,你可以使用正则表达式在/重新更新之前和之后检查数字:我们知道你不想在哪个
/
上拆分,我们不知道为什么会这样。您使用了哪些规则来确定这一点?非主题注释:不要在代码中使用

,而是使用两个空格和换行符(回车/回车键)。您可以将
拆分()
与正则表达式一起使用-我建议使用具有负前瞻性的正则表达式,如
\/(?!0)
在这种情况下,我们实际上不需要转义
/
,所以
\\/(?!\\d)
可能只是
/(?!\\d)
如果
/
跟在字符后面?一个提示是,字符串中始终有
=
符号,我们不希望拆分
/