java - 为什么尝试在 Java 中拆分字符串时出现空字符串?以及如何解决?
问题描述
我正在尝试拆分这样的字符串:
stringNumbers = "12.34+345.56+45-87.90*43.00";
String[] Operators = stringNumbers.split("[0-9.]");
在控制台中,当我打印运算符时,我得到了这个:
[, , , , , +, , , , , , +, , -, , , , , *]
空字符不是我想要的输出。为什么我得到空字符以及如何解决问题?
解决方案
这是因为您要按单个字符进行拆分,因此您必须急切地这样做:
String[] Operators = stringNumbers.split("[0-9.]*");
或者您可以过滤结果:
String[] Operators = Arrays.stream(stringNumbers.split("[0-9.]"))
.filter(str -> !str.equals(""))
.toArray(String[]::new);
推荐阅读
- excel - 如何在 VBa 中使用 Vlookup?
- macos - 我应该担心没有代码签名的python 3.6吗?
- keras - Keras 序列到序列模型中的异常
- python-3.x - plotly:3D 绘图返回一个没有数据点的图形
- c# - 从 SQL 获取数据以及在 C# 中读取 excel
- mysql - 将 WHERE 和 AND 分组为一个语句
- python - 使用 SciPy 拟合 Levy 稳定分布
- javascript - 如何获取复选框索引/行号?
- javascript - 如何在 javascript 文件中绘制图表并将其传递给 html 以便它可以显示
- php - 尝试使用军用时钟格式制作 if、elseif、else 时间和何时吃饭的声明