java - 使用模式拆分字符串时结果为空

标签 java regex java-8 functional-programming java-stream

我有以下代码:

String generalRequest = "4+6*12/3";
String[] operatorsLine = generalRequest.split("[0-9]+");

结果,我在 operatorsLine 中有多余的空值:

"", "+", "*", "/"

但是我想要一个结果:

"+", "*", "/"


如何使用 String.split() 方法跳过将 "" 值添加到数组中?

最佳答案

你可以使用类似的东西:

String[] operatorsLine = Arrays.stream(generalRequest.split("[0-9]+"))
                               .filter(s -> !s.isEmpty())
                               .toArray(String[]::new);

关于java - 使用模式拆分字符串时结果为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55090936/

相关文章:

java - PMD 代表什么?

python - 在数据帧上迭代 re.split()

java - 为什么 flatMap() 之后的 filter() 在 Java 流中是 "not completely"懒惰的?

java - 从使用 to_date 的数据库测试日期并针对 LocalTimeDate 进行测试

java - 具有通用返回类型的命令模式

java - 如何在 Java 中检查文件权限(独立于操作系统)

java - 继承树的依赖注入(inject)

php - 替换php中的mysql查询表前缀

C# 字符串拆分 - 无结束分隔符

java - 使用 Xmx 增加 JVM 堆内存不起作用