日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

票据系统对子票区间的一个应用

發(fā)布時(shí)間:2023/12/31 windows 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 票据系统对子票区间的一个应用 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

因?yàn)槠睋?jù)系統(tǒng)對(duì)子票區(qū)間的管理非常嚴(yán)格,但是為了兼容各大系統(tǒng)傳送過來不同格式的數(shù)據(jù),所以要做一個(gè)簡單的處理!

1、當(dāng)知道傳入數(shù)據(jù)一定攜帶“-”時(shí),可以直接使用split對(duì)字符串進(jìn)行拆分

split?拆分字符串

@Testpublic void test10(){String rangNo = "123456-3654123";//拆分String[] split = rangNo.split("-");//String類型String begin = split[0];String end = split[1];//轉(zhuǎn)intint intBegin = Integer.parseInt(begin);int intEnd = Integer.parseInt(end);//補(bǔ)位String formatBegin = String.format("%012d", intBegin);//只能識(shí)別int類型,所以需要轉(zhuǎn)換String format = String.format("%012d", intEnd);System.out.println(formatBegin+"**************8"+format);}

2、如果不確定收到的參數(shù)是什么類型,需做兼容處理

contains?集合中是否包含某字符串

indexOf?查詢字符串在第幾位

substring?字符串截取(截取時(shí)要注意包前不包后)

@Testpublic void test11(){String rangNo = "123-321";//判空if (StringUtils.isNullOrEmpty(rangNo)){//判斷是否帶“-”boolean contains = rangNo.contains("-");if (contains){//判斷“-”在第幾位int i = rangNo.indexOf("-");//分段獲取String substringBegin = rangNo.substring(0, i);//截取前半部分String substringEnd = rangNo.substring(i + 1);//截取后半部分//補(bǔ)位String formatBegin = String.format("%012d", Integer.parseInt(substringBegin));//只能識(shí)別int類型,所以需要轉(zhuǎn)換String formatEnd = String.format("%012d", Integer.parseInt(substringEnd));System.out.println(formatBegin+"********"+formatEnd);List<String> rangList = new ArrayList<>();rangList.add(formatBegin);rangList.add(formatEnd);return;}}}

注意:Integer是有長度限制的,當(dāng)時(shí)小編在寫這個(gè)工具類時(shí)沒考慮到最大值問題,所以代碼還有一個(gè)很明顯的bug,應(yīng)用實(shí)際最重要,結(jié)合場(chǎng)景去完善功能吧!!!!!

????????java int 類整數(shù)的最大值是 2 的 31 次方 - 1 = 2147483648 - 1 = 2147483647

????????可以用 Integer.MAX_VALUE 表示它,即 int value = Integer.MAX_VALUE;

????????Integer.MAX_VALUE + 1 = Integer.MIN_VALUE = -2147483648

????????再大的數(shù)就要用 long (最大值 2 的 63 次方 - 1 )或者 BigDecimal 表示

提取新增Utils方法

package cn.bankapp.ecds.custom.tranServerOld.util;import cn.bankapp.ecds.common.exception.CheckException; import cn.bankapp.ecds.common.exception.ErrorCode;import lombok.extern.log4j.Log4j2; import org.apache.commons.lang.StringUtils;import java.util.ArrayList; import java.util.List;/*** @ClassName RangeNoInspectUntils* @Description TODO* @Author WYD* @Date 2022/7/19 17:45* @Version 1.0*/ @Log4j2 public class RangeNoInspectUntils {/*** 票據(jù)區(qū)間拆分** @param rangeNo 子區(qū)間號(hào)* @param beginRangeNo 開始區(qū)間* @param endRangeNo 結(jié)束區(qū)間* @throws Exception*/public List<String> rangeNo(String rangeNo, String beginRangeNo, String endRangeNo) throws Exception {if (StringUtils.isBlank(rangeNo) && StringUtils.isBlank(beginRangeNo) && StringUtils.isBlank(endRangeNo)) {throw new CheckException(ErrorCode.PARAM_NULL, "‘子區(qū)間號(hào)’或‘起始子區(qū)間-結(jié)束子區(qū)間’至少有一個(gè)不能為空");}String beginRangeNoNew;String endRangeNoNew;if (StringUtils.isNotEmpty(rangeNo)) {boolean containsRangeNo = rangeNo.contains("-");if (containsRangeNo) {log.info("-----------子票區(qū)間{}-----------", rangeNo);//wyd 20220505 拆分String[] str = rangeNo.split("-");String begin = str[0];String end = str[1];if ("0".equals(begin) && "0".equals(end)) {beginRangeNoNew = begin;endRangeNoNew = end;} else {//獲取截取到的參數(shù)int beginNo = Integer.parseInt(begin);int endNo = Integer.parseInt(end);//數(shù)據(jù)不夠12位進(jìn)行補(bǔ)齊beginRangeNoNew = String.format("%012d", beginNo);endRangeNoNew = String.format("%012d", endNo);}}else {if ("0".equals(rangeNo)){beginRangeNoNew = "0";endRangeNoNew = "0";}else {log.info("票據(jù)區(qū)間不存在");throw new Exception("票據(jù)區(qū)間不存在");}}} else {log.info("-----------起始區(qū)間{}-結(jié)束區(qū)間{}-----------", beginRangeNo, endRangeNo);String rangeNo1 = null;if (StringUtils.isNotBlank(beginRangeNo)) {rangeNo1 = beginRangeNo;} else {rangeNo1 = endRangeNo;}boolean containsBeginRangeNo = rangeNo1.contains("-");if (containsBeginRangeNo) {log.info("----------進(jìn)入containsBeginRangeNo方法{}----------------", containsBeginRangeNo);int i1 = rangeNo1.indexOf("-");String beginNo = rangeNo1.substring(0, i1);String endNo = rangeNo1.substring(i1 + 1);if ("0".equals(beginNo) && "0".equals(endNo)) {log.info("----------等分化不可拆分票--------------");beginRangeNoNew = beginNo;endRangeNoNew = endNo;} else {log.info("----------等分化可拆分票--------------");//數(shù)據(jù)不夠12位進(jìn)行補(bǔ)齊beginRangeNoNew = String.format("%012d", Integer.parseInt(beginNo));endRangeNoNew = String.format("%012d", Integer.parseInt(endNo));}} else {log.info("----------未進(jìn)入containsBeginRangeNo方法{}----------------", containsBeginRangeNo);if ("0".equals(beginRangeNo) && "0".equals(endRangeNo)) {log.info("----------等分化不可拆分票{}{}--------------", beginRangeNo, endRangeNo);beginRangeNoNew = beginRangeNo;endRangeNoNew = endRangeNo;} else {log.info("----------等分化可拆分票{},{}--------------", beginRangeNo, endRangeNo);//數(shù)據(jù)不夠12位進(jìn)行補(bǔ)齊beginRangeNoNew = String.format("%012d", Integer.parseInt(beginRangeNo));endRangeNoNew = String.format("%012d", Integer.parseInt(endRangeNo));}}}List<String> rangeNoList = new ArrayList<>();rangeNoList.add(beginRangeNoNew);rangeNoList.add(endRangeNoNew);log.info("區(qū)間號(hào){},{}",beginRangeNoNew,endRangeNoNew);return rangeNoList;}/*** @return void* 測(cè)試* @Author WYD* @Description //TODO* @Date 2022/7/19* @Param [args]* @Version 1.0**/public static void main(String[] args) throws Exception {String billNo = "62312313"; // 票號(hào)String subString = billNo.substring(0, 1);System.out.println(subString);//區(qū)間//等分化票可拆分if ("5".equals(subString) || "6".equals(subString)) {List<String> strings = new RangeNoInspectUntils().rangeNo("0", null, null);System.out.println(strings.get(0));System.out.println(strings.get(1));} else {//傳統(tǒng)票區(qū)間默認(rèn)為12個(gè)0System.out.println(String.format("%012d", Integer.parseInt("0"))); // 起始區(qū)間System.out.println(String.format("%012d", Integer.parseInt("0"))); // 結(jié)束區(qū)間}} }

總結(jié)

以上是生活随笔為你收集整理的票据系统对子票区间的一个应用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。