为了账号安全,请及时绑定邮箱和手机立即绑定

使用模式拆分字符串时的空结果

使用模式拆分字符串时的空结果

海绵宝宝撒 2022-07-27 21:29:37
我有以下代码:String generalRequest = "4+6*12/3";String[] operatorsLine = generalRequest.split("[0-9]+");结果,我有剩余的空值operatorsLine:“”、“+”、“*”、“/”然而我渴望一个结果:“+”、“*”、“/”如何""使用方法跳过将值添加到数组中String.split()?
查看完整描述

3 回答

?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

你可以使用类似的东西:

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


查看完整回答
反对 回复 2022-07-27
?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

如何为split(String regex, int limit)方法提供第二个参数并使用 2 个输出字段限制它并再次拆分它:


String generalRequest = "4+6*12/3";

String[] operatorsLine = (generalRequest.split("\\d+", 2)[1]).split("\\d+");

第一次拆分将输出一个数组:["", "+6*12/3"],然后获取第一个索引并使用相同的正则表达式再次拆分它。


的最终operatorsLine值为[+,*,/]


查看完整回答
反对 回复 2022-07-27
?
慕田峪9158850

TA贡献1794条经验 获得超7个赞

在这种情况下,您只需要单字符运算符,

从字符串中删除所有数字并使用空字符串作为分隔符进行分割即可:


String generalRequest = "4+6*12/3";

String[] operatorsLine = generalRequest.replaceAll("\\d", "").split("");

System.out.println(Arrays.toString(operatorsLine));

这打印:


[+, *, /]


查看完整回答
反对 回复 2022-07-27
  • 3 回答
  • 0 关注
  • 91 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信