数字、钱工具栏

 /**
     * 提取字符串中的 数字 带小数点 ,没有就返回"0"
     *
     * @param money
     * @return
     */
     fun getMoney(money: String): String {
        var money = money
        var pattern = Pattern.compile("(\\d+\\.\\d+)")
        var m = pattern.matcher(money)
        if (m.find()) {
            money = if (m.group(1) == null) "0" else m.group(1) as String
        } else {
            pattern = Pattern.compile("(\\d+)")
            m = pattern.matcher(money)
            money = if (m.find()) {
                if (m.group(1) == null) "" else m.group(1)
            } else {
                "0"
            }
        }
        return money
    }


    /**
     * 汉字转数字
     * 一零零八六:10086
     * 一千零四十五:1045
     */
    fun hanZiToArabic(hanziNumber: String): String {
        val numberMap = mapOf(
            "零" to 0, "一" to 1, "二" to 2, "两" to 2,
            "三" to 3, "四" to 4, "五" to 5, "六" to 6,
            "七" to 7, "八" to 8, "九" to 9
        )
        val unit = mapOf("万" to 10000, "千" to 1000, "百" to 100,"十" to 10)
        //包含计数单位
        var have=false
        run loop@{
            unit.forEach { (s, i) ->
                have =hanziNumber.contains(s)
                if(have){
                    return@loop
                }
            }
        }
        return if(have){//一千零四十五
            val numbers = mutableListOf<Int>()
            unit.forEach { (s, i) ->
                val index = hanziNumber.indexOf(s)
                if(index!=-1){
                    numberMap[hanziNumber[index-1].toString()]?.let {
                        numbers.add(it * i)
                    }
                }
            }
            numberMap[hanziNumber.last().toString()]?.let {
                numbers.add(it)//加上个位数
            }
            numbers.reduce { acc, i ->  acc+i}.toString()//求和
        }else {//一零零八六
            var result = ""
            for (character in hanziNumber) {
                val number = numberMap[character.toString()]
                if (number != null) {
                    result += number
                }
            }
            result
        }
    }

测试:

public class ExampleUnitTest {

    @Test
    public void test(){
        String aa = NumberUtils.INSTANCE.hanZiToArabic("一零五零");
        System.err.println("一零五零 to "+aa);
        String aa2 = NumberUtils.INSTANCE.hanZiToArabic("一万五千六十七");
        System.err.println("一万五千六十七 to "+aa2);
    }
}

运行结果:

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
QGIS高级数字工具栏是一个功能强大的工具集合,旨在帮助用户更高效准确地进行地理信息系统(GIS)的数字化工作。 首先,高级数字工具栏提供了一系列的绘制工具,包括点、线、多边形、圆、椭圆等,用户可以根据需要选择相应的绘制工具,通过简单的点击和绘制操作,快速生成或修改要素。 其次,高级数字工具栏还提供了一些高级的编辑和修整工具,例如节点编辑、顶点编辑、边编辑、环编辑等。通过这些工具,用户可以对绘制的要素进行精细调整和修改,使得要素与实际地理特征更加吻合。 此外,高级数字工具栏还支持一些特殊要素的数字化,如文字标注、注记、方向箭头等。这些工具可以帮助用户更好地展示地理信息,提供更清晰的图像说明。 除了上述功能,高级数字工具栏还提供了一些辅助工具,如捕捉工具、缩放工具、旋转工具等。这些工具可以帮助用户更好地控制和操作数字化过程,提高工作效率和准确性。 最后,高级数字工具栏还支持多种输出格式和数据交换方式,用户可以将数字化结果导出为常见的GIS数据格式,如Shapefile、GeoJSON等,或者直接通过复制粘贴、数据连接等方式与其他GIS软件进行数据交换。 总之,QGIS高级数字工具栏为用户提供了丰富多样的功能和工具,帮助用户高效准确地进行GIS的数字化工作,是地理信息系统中不可或缺的重要工具。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值