信息发布→ 登录 注册 退出

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

发布时间:2026-01-11

点击量:
目录
  • 获取指定位置后的第一个数字
    • 环境
    • 场景
    • 代码
  • 获取一串数字中每一位数的小技巧

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

    环境

    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
    

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

    在线客服
    服务热线

    服务热线

    4008888355

    微信咨询
    二维码
    返回顶部
    ×二维码

    截屏,微信识别二维码

    打开微信

    微信号已复制,请打开微信添加咨询详情!