//提取固定格式字符串中的数字,整数、double、负数都可以 public static String[] extractAmountMsg(String ptCasinoMsg){ String returnAmounts [] = new String [4]; if(!ptCasinoMsg.equals("")){ ptCasinoMsg = ptCasinoMsg.replace(" | ", " "); String [] amounts = ptCasinoMsg.split(" "); for(int i=0;i<amounts.length;i++){ String msgAmount = amounts[i]; String numFlag = ""; if(msgAmount.contains("-")){ numFlag="-"; } Pattern p=Pattern.compile("(\\d+\\.\\d+)"); Matcher m=p.matcher(amounts[i]); if(m.find()){ returnAmounts[i]=m.group(1)==null?"":numFlag+m.group(1); }else{ p=Pattern.compile("(\\d+)"); m=p.matcher(amounts[i]); if(m.find()){ returnAmounts[i]=m.group(1)==null?"":numFlag+m.group(1); } } } }else { returnAmounts[0]="0"; returnAmounts[1]="0d"; returnAmounts[2]="0d"; returnAmounts[3]="0d"; } return returnAmounts; }
@Test public void testNum(){ String[] cc = NumberUtil.extractAmountMsg("日单量:100 | 交易额度:55.6 | 总额度:55.7 | 优惠额:-33.4"); for (String s :cc){ System.out.println(s); } }