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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013066244/article/details/82495239

环境

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

总结

思路比较简单。有好的建议 留个言呗

猜你喜欢

转载自blog.csdn.net/u013066244/article/details/82495239