我正在尝试分割一个字符串,例如: 项目1 = $ 2项目2 = $ 3项目3 = $ 4 所以我当然不能在空间上分裂,因为我有兴趣获取所有物品的价格。所以我创建了一个正则表达式
String[] prices = line.split("[a-zA-Z]+\\s[0-9]+\\=\\$");
但是在输出中我得到了4个元素。一个是空字符串并保留我想要的值。我不明白为什么4?我应该给三个字串我在做什么错了?
谢谢
答案 0 :(得分:3)
这里有很多假设,但目标是找到给定行中的所有价格,因此我将执行以下操作,而不是尝试将行本身拆分为 。
>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