Split() 与正则表达式 java

我正在尝试拆分一个字符串,例如: item 1=$2 item 2=$3 item 3=$4 所以当然我不能在空间上拆分,因为我有兴趣获得所有商品的价格。所以我创建了一个正则表达式

    String[] prices = line.split("[a-zA-Z]+\\s[0-9]+\\=\\$");

但在输出中我得到 4 个元素。一个是空字符串并保留我想要的值。我不明白为什么是 4?我应该给出三个字符串 我在这里做错了什么?


哔哔one
浏览 221回答 1
1回答

紫衣仙女

这里有很多假设,但如果目标是找到给定线中的所有价格,我会执行以下操作,而不是尝试拆分线本身。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));}输出:234因此,我们只有价格。现在,如果价格可以有小数等,则需要更新正则表达式。这样一个更新的正则表达式可能是:Pattern pat = Pattern.compile("\\$([\\d]+[.]?[\\d]*)");并修改了以下输入: String line = "item 1 = $2 item 2 = $3.01 item 3 = $4.53";一个得到:23.014.53
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java