我正在嘗試拆分一個字符串,例如: item 1=$2 item 2=$3 item 3=$4 所以當(dāng)然我不能在空間上拆分,因?yàn)槲矣信d趣獲得所有商品的價(jià)格。所以我創(chuàng)建了一個正則表達(dá)式 String[] prices = line.split("[a-zA-Z]+\\s[0-9]+\\=\\$");但在輸出中我得到 4 個元素。一個是空字符串并保留我想要的值。我不明白為什么是 4?我應(yīng)該給出三個字符串 我在這里做錯了什么?
1 回答

紫衣仙女
TA貢獻(xiàn)1839條經(jīng)驗(yàn) 獲得超15個贊
這里有很多假設(shè),但如果目標(biāo)是找到給定線中的所有價(jià)格,我會執(zhí)行以下操作,而不是嘗試拆分線本身。
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
因此,我們只有價(jià)格?,F(xiàn)在,如果價(jià)格可以有小數(shù)等,則需要更新正則表達(dá)式。
這樣一個更新的正則表達(dá)式可能是:
Pattern pat = Pattern.compile("\\$([\\d]+[.]?[\\d]*)");
并修改了以下輸入:
String line = "item 1 = $2 item 2 = $3.01 item 3 = $4.53";
一個得到:
2
3.01
4.53
添加回答
舉報(bào)
0/150
提交
取消