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

Split() 与正则表达式 java

Split() 与正则表达式 java

哔哔one 2021-09-12 19:45:37
我正在尝试拆分一个字符串,例如: item 1=$2 item 2=$3 item 3=$4 所以当然我不能在空间上拆分,因为我有兴趣获得所有商品的价格。所以我创建了一个正则表达式    String[] prices = line.split("[a-zA-Z]+\\s[0-9]+\\=\\$");但在输出中我得到 4 个元素。一个是空字符串并保留我想要的值。我不明白为什么是 4?我应该给出三个字符串 我在这里做错了什么?
查看完整描述

1 回答

?
紫衣仙女

TA贡献1839条经验 获得超15个赞

这里有很多假设,但如果目标是找到给定线中的所有价格,我会执行以下操作,而不是尝试拆分线本身。


String line = "item 1 = $2 item 2 = $3 item 3 = $4";

Pattern pat = Pattern.compile("\\$([\\d]+)");

Matcher m = pat.matcher(line);

while (m.find()) {

    System.out.println(m.group(1));

}

输出:


2

3

4


因此,我们只有价格。现在,如果价格可以有小数等,则需要更新正则表达式。


这样一个更新的正则表达式可能是:


Pattern pat = Pattern.compile("\\$([\\d]+[.]?[\\d]*)");

并修改了以下输入:


 String line = "item 1 = $2 item 2 = $3.01 item 3 = $4.53";

一个得到:


2

3.01

4.53


查看完整回答
反对 回复 2021-09-12
  • 1 回答
  • 0 关注
  • 215 浏览

添加回答

举报

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