java?實(shí)現(xiàn)獲取指定位置后的第一個(gè)數(shù)字
獲取指定位置后的第一個(gè)數(shù)字
環(huán)境
java:1.7
場景
今天遇到這么一個(gè)需求:
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股
會(huì)有類似上面的字符串,需要根據(jù)“送”,“增”和“派”來把后面的數(shù)字給切出來;再進(jìn)行拼接。
比如:
字符串為“10送2轉(zhuǎn)增8股派0.3元”,根據(jù)“送”來切,得到的數(shù)字就是“2”,根據(jù)“增”就是8,根據(jù)“派”來切就是“0.3”;
之后要根據(jù)不同的詞切出來的字,還要進(jìn)行拼接:
“送” 要拼接成:“10送2股”
“增”要拼接成:“10送8股”
“派”要拼接成:“10送0.3元”
代碼
/**
* 獲取指定位置后的第一個(gè)數(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ù)點(diǎn)符號;
上面的代碼根據(jù)數(shù)字在ASCII表中的編號來進(jìn)行判斷的。數(shù)字0-9的范圍是48-57,小數(shù)點(diǎn)符號是46。
獲取一串?dāng)?shù)字中每一位數(shù)的小技巧
假定有一個(gè)五位數(shù) 57648 ,我們要獲取他的萬位、千位、百位、十位、個(gè)位的每一個(gè)數(shù)值,有一個(gè)比較方便的做法,不用去做字串截取。
// 數(shù)值 57648 int num= 57648; // 萬位 除以一萬 int wanWei = num / 10000;// 利用自動(dòng)類型轉(zhuǎn)換獲取得到 5 以下同理 // 千位 以一萬取余,然后除以一千 int qianWei = num % 10000 / 1000;// 得到 7 // 百位 以一千取余,然后除以一百 int baiWei = num % 1000 / 100;// 得到 6 // 十位 以一百取余,然后除以十 int shiWei = num % 100 / 10;// 得到 4 // 個(gè)位 以十取余 int geWei = num % 10;// 得到 8

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java動(dòng)態(tài)數(shù)組添加數(shù)據(jù)的方法與應(yīng)用示例
這篇文章主要介紹了Java動(dòng)態(tài)數(shù)組添加數(shù)據(jù)的方法,結(jié)合實(shí)例形式詳細(xì)分析了Java動(dòng)態(tài)數(shù)組的創(chuàng)建、添加、查找、打印等相關(guān)操作技巧,需要的朋友可以參考下2019-11-11
JAVA進(jìn)階篇之詳細(xì)了解File文件的常用API
這篇文章主要給大家介紹了關(guān)于JAVA進(jìn)階篇之詳細(xì)了解File文件的常用API的相關(guān)資料,File用于表示文件系統(tǒng)中的一個(gè)文件或目錄,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-11-11
如何使用intellij IDEA搭建Spring Boot項(xiàng)目
這篇文章主要介紹了如何使用intellij IDEA搭建Spring Boot項(xiàng)目,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07
SpringBoot3.0自定stater模塊的操作流程(chatGPT提供的49種場景)
SpringBoot3.0發(fā)布等重磅陸消息續(xù)進(jìn)入大家的視線,而本文作者將以技術(shù)整合的角度,帶大家把最火的兩個(gè)技術(shù)整合在一起,通過本文學(xué)習(xí)你將熟悉SpringBoot3.0自定stater模塊的操作流程,并熟悉OpenAi為chatGPT提供的49種場景,感興趣的朋友一起看看吧2022-12-12
Java中的HashMap和Hashtable區(qū)別解析
這篇文章主要介紹了Java中的HashMap和Hashtable區(qū)別解析,HashMap和Hashtable都實(shí)現(xiàn)了Map接口,但決定用哪一個(gè)之前先要弄清楚它們之間的區(qū)別,主要的區(qū)別有線程安全性、同步和速度,需要的朋友可以參考下2023-11-11
Spring?Data?JPA框架的核心概念與Repository接口詳解
Spring?Data?JPA是Spring基于JPA規(guī)范的基礎(chǔ)上封裝的?套?JPA?應(yīng)?框架,可使開發(fā)者?極簡的代碼即可實(shí)現(xiàn)對數(shù)據(jù)庫的訪問和操作,本篇我們來了解Spring?Data?JPA框架的核心概念與Repository接口2022-04-04
Java組件FileUpload上傳文件實(shí)現(xiàn)代碼
這篇文章主要為大家詳細(xì)介紹了Java組件FileUpload上傳文件實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-06-06

