java 实现获取指定位置后的第一个数字

 更新时间:2022年1月26日 18:03  点击:287 作者:山鬼谣me

获取指定位置后的第一个数字

环境

java:1.7

场景

今天遇到这么一个需求:

10转增7.5股派1.5元(含税)

10派1.5元(含税)

不分配不转增

10转增3股

10派1.34元(含税)

10送2转增8股派0.3元

10送2.5转增1.5股

10送2股

会有类似上面的字符串,需要根据“送”,“增”和“派”来把后面的数字给切出来;再进行拼接。

比如:

字符串为“10送2转增8股派0.3元”,根据“送”来切,得到的数字就是“2”,根据“增”就是8,根据“派”来切就是“0.3”;

之后要根据不同的词切出来的字,还要进行拼接:

“送” 要拼接成:“10送2股”

“增”要拼接成:“10送8股”

“派”要拼接成:“10送0.3元”

代码

/**
 * 获取指定位置后的第一个数字
 * @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;
}

我用的方法思路很简单,就是先根据关键词确定位置,如何再去判断数字,只是需要特别注意小数点符号;

上面的代码根据数字在ASCII表中的编号来进行判断的。数字0-9的范围是48-57,小数点符号是46。

获取一串数字中每一位数的小技巧

假定有一个五位数 57648 ,我们要获取他的万位、千位、百位、十位、个位的每一个数值,有一个比较方便的做法,不用去做字串截取。

// 数值 57648
int num= 57648;
// 万位 除以一万
int wanWei = num / 10000;// 利用自动类型转换获取得到 5 以下同理
// 千位 以一万取余,然后除以一千
int qianWei = num % 10000 / 1000;// 得到 7
// 百位 以一千取余,然后除以一百
int baiWei = num % 1000 / 100;// 得到 6
// 十位 以一百取余,然后除以十
int shiWei = num % 100 / 10;// 得到 4
// 个位 以十取余
int geWei = num % 10;// 得到 8

在这里插入图片描述

以上为个人经验,希望能给大家一个参考,也希望大家多多支持猪先飞。

原文出处:https://blog.csdn.net/u013066244/article/details/82495239

[!--infotagslink--]

相关文章