码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 安卓金钱过滤器(保留两位小数,保证小数点前面保留几位数)


    /**
     * 金额输入过滤器
     * 1、不允许第一个字符为"."
     * 2、不允许出现0123、0456这类字符串
     * 3、保留两位小数
     * 4、保留小数点前面6位数(num=6)
     */
    class MoneyInputFilter(num: Int=6) : InputFilter {
    
        private val POINT_LENGTH = 2//保留小数点位数
        private var POINT_PRE_LENGTH = num//保留小数点前面位数
    
    
        override fun filter(
            source: CharSequence,//将要输入的字符串,如果是删除操作则为空
            start: Int,//将要输入的字符串起始下标,一般为0
            end: Int,//start + source字符的长度
            dest: Spanned,//输入之前文本框中的内容
            dstart: Int,//将会被替换的起始位置
            dend: Int//dstart+将会被替换的字符串长度
        ): CharSequence {//方法返回的值将会替换掉dest字符串中dstartd位置到dend位置之间字符,返回source表示不做任何处理,返回空字符串""表示不输入任何字符
            val start = dest.subSequence(0, dstart)
            val end = dest.subSequence(dend, dest.length)
            val target = start.toString() + source + end//字符串变化后的结果
            val backup = dest.subSequence(dstart, dend)//将要被替换的字符串
    
            if (target.indexOf(".") == 0) {//不允许第一个字符为.
                return backup
            }
            if (target.startsWith("0") && !target.startsWith("0.") && "0" != target) {//不允许出现0123、0456这类字符串
                return backup
            }
            //限制小数点后面只能有两位小数
            val index = target.indexOf(".")
            if (index >= 0 && index + POINT_LENGTH + 2 <= target.length) {
                return backup
            }
            //限制小数点前面只能有6位数
            if (target.contains(".")) {
                if (target.substring(0,target.indexOf(".")).length>POINT_PRE_LENGTH){
                    return backup
                }
            }else if (target.length > POINT_PRE_LENGTH) {
                return backup
            }
            return source
        }
    }
  • 相关阅读:
    Qt实现PSD信号接收程序
    java图片转二进制流_java将文件转化成二进制流
    VideoPipe可视化视频结构化框架新增功能详解(2022-11-4)
    LeetCode(力扣)46. 全排列Python
    scrollIntoView锚点跳转 超好用
    8、创建第一个鸿蒙页面并实现页面跳转
    Ceph入门到精通-高功性能文件系统hpfs
    ‘爬取段子星网站’,报错解决不了,谁能看一下什么问题
    碳中和&专利创新专题:各省市县专利面板(原始文件)、低碳专利授权数等多指标数据
    整合mybatis
  • 原文地址:https://blog.csdn.net/qq_36428870/article/details/127927510
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号