我正在尝试拆分一个字符串,例如: 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
添加回答
举报
0/150
提交
取消