首页 > 解决方案 > 为什么尝试在 Java 中拆分字符串时出现空字符串?以及如何解决?

问题描述

我正在尝试拆分这样的字符串:

stringNumbers = "12.34+345.56+45-87.90*43.00";
String[] Operators = stringNumbers.split("[0-9.]");

在控制台中,当我打印运算符时,我得到了这个:

[, , , , , +, , , , , , +, , -, , , , , *]

空字符不是我想要的输出。为什么我得到空字符以及如何解决问题?

标签: javaarraysregexstringjava-8

解决方案


这是因为您要按单个字符进行拆分,因此您必须急切地这样做:

String[] Operators = stringNumbers.split("[0-9.]*");

或者您可以过滤结果:

String[] Operators = Arrays.stream(stringNumbers.split("[0-9.]"))
    .filter(str -> !str.equals(""))
    .toArray(String[]::new);

推荐阅读