如何判斷轉(zhuǎn)賬金額的合法性——正則表達(dá)式 1)轉(zhuǎn)賬金額必須為純數(shù)字,包括整數(shù)和小數(shù),小數(shù)最多只能兩位 Boolean match = transferNum.matches(“^/-?([1-9]/d*|0)(/./d{0,2})?$”); 2)轉(zhuǎn)賬金額不能為負(fù)數(shù),包括負(fù)整數(shù)和負(fù)小數(shù) Pattern pattern1 = Pattern.compile(“^-[0]/.[1-9]|^-[1-9]/d/./d*”); Matcher isNegativeDecimal = pattern1.matcher(transferNum); Pattern pattern2 = Pattern.compile(“^-[1-9]/d*”); Matcher isNegativeInteger = pattern2.matcher(transferNum); Boolean result = isNegativeDecimal.matches() || isNegativeInteger.matches();
事務(wù)回滾 Connection conn = null; try { BigDecimal srcaccount = new BigDecimal(getUser(srcUser).getAccount()); BigDecimal targetaccount = new BigDecimal(getUser(targetUser).getAccount()); BigDecimal transferaccount = new BigDecimal(account); conn = DBUtils.getConnection(); conn.setAutoCommit(false);// 取消自動(dòng)提交 userdao.updateAccount(conn, srcUser, String.valueOf(srcaccount.subtract(transferaccount))); userdao.updateAccount(conn, targetUser, String.valueOf(targetaccount.add(transferaccount))); conn.commit();// 提交 } catch (Exception e) { try { conn.rollback();// 回滾 throw new TransferFailureException(ConstCodeUtils.TRANSFER_FAILURE_4); } catch (SQLException e1) { e1.PRintStackTrace(); } e.printStackTrace(); } finally { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } }
字符串為一系列數(shù)字時(shí),直接相加減 相加:String.valueOf(targetaccount.add(transferaccount) 相減:String.valueOf(srcaccount.subtract(transferaccount)
比較兩個(gè)字符串的大小 int result = curuserAccount.compareTo(transferNum); result大于0則curuserAccount較大,等于0則兩個(gè)數(shù)相等,小于0則curuserAccount較小。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注