java?實現(xiàn)獲取指定位置后的第一個數(shù)字
獲取指定位置后的第一個數(shù)字
環(huán)境
java:1.7
場景
今天遇到這么一個需求:
10轉(zhuǎn)增7.5股派1.5元(含稅)
10派1.5元(含稅)
不分配不轉(zhuǎn)增
10轉(zhuǎn)增3股
10派1.34元(含稅)
10送2轉(zhuǎn)增8股派0.3元
10送2.5轉(zhuǎn)增1.5股
10送2股
會有類似上面的字符串,需要根據(jù)“送”,“增”和“派”來把后面的數(shù)字給切出來;再進行拼接。
比如:
字符串為“10送2轉(zhuǎn)增8股派0.3元”,根據(jù)“送”來切,得到的數(shù)字就是“2”,根據(jù)“增”就是8,根據(jù)“派”來切就是“0.3”;
之后要根據(jù)不同的詞切出來的字,還要進行拼接:
“送” 要拼接成:“10送2股”
“增”要拼接成:“10送8股”
“派”要拼接成:“10送0.3元”
代碼
/** * 獲取指定位置后的第一個數(shù)字 * @author yutao * @param dividBoard * @param string * @return * @date 2018年9月7日上午11:03:35 */ public static String getDigital(String dividBoard, String str){ String result = ""; int songIndex = dividBoard.indexOf(str); if(songIndex != -1){ for(int i=songIndex+1; i<dividBoard.length(); i++){ int charInt = (int)dividBoard.charAt(i); if(charInt == 46){ result += (char)charInt; continue; } if(47<charInt && charInt<58){ result = result + (char)charInt; }else{ break; } } } return result; }
我用的方法思路很簡單,就是先根據(jù)關(guān)鍵詞確定位置,如何再去判斷數(shù)字,只是需要特別注意小數(shù)點符號;
上面的代碼根據(jù)數(shù)字在ASCII表中的編號來進行判斷的。數(shù)字0-9的范圍是48-57,小數(shù)點符號是46。
獲取一串數(shù)字中每一位數(shù)的小技巧
假定有一個五位數(shù) 57648 ,我們要獲取他的萬位、千位、百位、十位、個位的每一個數(shù)值,有一個比較方便的做法,不用去做字串截取。
// 數(shù)值 57648 int num= 57648; // 萬位 除以一萬 int wanWei = num / 10000;// 利用自動類型轉(zhuǎn)換獲取得到 5 以下同理 // 千位 以一萬取余,然后除以一千 int qianWei = num % 10000 / 1000;// 得到 7 // 百位 以一千取余,然后除以一百 int baiWei = num % 1000 / 100;// 得到 6 // 十位 以一百取余,然后除以十 int shiWei = num % 100 / 10;// 得到 4 // 個位 以十取余 int geWei = num % 10;// 得到 8
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
詳解MyBatis-Puls中saveBatch批量添加慢的問題
本文主要介紹了詳解MyBatis-Puls中saveBatch批量添加慢的問題,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01idea中增強for循環(huán)提示unexpected token問題
這篇文章主要介紹了idea中增強for循環(huán)提示unexpected token問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01springboot項目中引入本地依賴jar包并打包到lib文件夾中
這篇文章主要介紹了springboot項目中引入本地依賴jar包,如何打包到lib文件夾中,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-04-04