当前位置: 首页 > news >正文

塘厦人民医院谷歌推广优化

塘厦人民医院,谷歌推广优化,网站建设开发流程按钮,沈阳男科医院咨询电话忘记是在去年还是前年的时候遇到一个需要检测所传字符串是否为数字的场景,开始使用 NumberUtils.isNumber() 提示错误 ,没有解决问题(可能是因为依赖版本导致),最后使用的是StringUtils.isNumeric(),当时关…

忘记是在去年还是前年的时候遇到一个需要检测所传字符串是否为数字的场景,开始使用 NumberUtils.isNumber() 提示错误 ,没有解决问题(可能是因为依赖版本导致),最后使用的是StringUtils.isNumeric(),当时关于这个问题场景的Bolog也放到了草稿箱中,一直保留至今才抽时间补充起来…

其实问题早已解决,但是不影响我们再好好读一下 StringUtils、NumberUtils源码,以便在更多场景中活学活用

      • 触发场景
      • 基础了解
      • StringUtils
        • 判空 isEmpty(空)、isNotEmpty(非空)
        • 判空 isBlank(空)、isNotBlank(非空)- 过滤空格
        • 过滤、去除 strip、stripToEmpty、stripStart、stripToNull、stripToEmpty 等
        • 去空 trim、trimToNull、trimToEmpty
        • 判断 是否为数字 isNumeric、isNumericSpace
      • NumberUtils
        • 俩数比较
        • 获取 最大值、最小值
        • 判断 字符串是否为数字、是否全为数字
        • 类型创建 createInteger、createDouble 、createLong等
        • 类型转换 toInt、toDouble、toLong等

触发场景

当时所处理场景( Java、Android工具整理 - 单位换算),需注意 当时调用的StringUtils是alipay封装的

在这里插入图片描述

基础了解

其实不论是StringUtils,还是NumberUtils 都是 org.apache.commons.lang3 提供的工具类;依赖引用 implementation 'org.apache.commons:commons-lang3:3.9'

build.gradle

  implementation 'org.apache.commons:commons-lang3:3.9'

org.apache.commons.lang3

在这里插入图片描述


StringUtils

StringUtils官方文档 (导入包:import org.apache.commons.lang3.StringUtils;

在这里插入图片描述

其实在学习源码中,你会发现可以很便捷的找到方法,同时这些方法的一些实际使用都有标明示例

判空 isEmpty(空)、isNotEmpty(非空)

开发中isEmptyisNotEmpty 使用非常频繁,正好看看源码(感觉看过后都没必要介绍了...

在这里插入图片描述

isEmpty :判断条件以 null 或 String长度为标准

  StringUtils.isEmpty(null)      = trueStringUtils.isEmpty("")        = trueStringUtils.isEmpty(" ")       = false //内部空格默认 length()==1,故为falseStringUtils.isEmpty("bob")     = falseStringUtils.isEmpty("  bob  ") = false

isNotEmpty:内部实现直接是 !isEmpty,简而言之就是 只要不为null 或 String.length() >0 即为非空

  StringUtils.isNotEmpty(null)      = falseStringUtils.isNotEmpty("")        = falseStringUtils.isNotEmpty(" ")       = trueStringUtils.isNotEmpty("bob")     = trueStringUtils.isNotEmpty("  bob  ") = true

判空 isBlank(空)、isNotBlank(非空)- 过滤空格

这俩个API好像使用的频率稍微低一些,于上者的区别主要在于对 " " 场景的定义

对应Api调用时的示例都有,我们主要看一下isBlank内部实现,首先它具备了isEmpty的判断条件,同时也会判断是否存在空格,这里判断语句应该代表着如果不为空格就返回false,为空格的话也是返回true;关于 isNotBlank 的实现直接调用的 !isBlank ~

在这里插入图片描述


过滤、去除 strip、stripToEmpty、stripStart、stripToNull、stripToEmpty 等

在开发中有一个很常见的场景:经常需要去除字符串中的空格,或者某些数据~

StringUtils.strip 提供的一些方法

在这里插入图片描述

stripToNull、stripToEmpty

共同点:都调用了strip(str, null)

当数据为空或null时,有一些不同点

  • stripToNull 判断字符串为空时,返回的值为null
  • stripToEmpty 判断字符串为空时,返回的值为 ""

找点不足:只能去除前后空格,字符串中的间的空格无法去除!

在这里插入图片描述

strip :当需要过滤特定数据或空串时可直接使用strip方法,第二个参数为需要过滤的数据

找些不足

  • 无筛选条件下(及为null 或 ""),首尾空格都可以去除
  • 有筛选条件下优先去除筛选数据,空格可能会残留(如果有需要,可以二次调用特意除去空格)
  • 当过滤数据位于其余数据中,可能会出现无法筛选的情况,类似以下场景
StringUtils.strip("  abcyx", "xyz")  // 输出:  abc
StringUtils.strip("  abycyx", "xyz") // 输出:  abyc

在这里插入图片描述

从strip 方法可以看到stripStart、stripEnd ,,有兴趣的可以,稍微看一下

  • 内部一个是正序过滤,一个是倒序过滤
  • 过滤场景也是一个注重头部,一个注重尾部

stripStart

在这里插入图片描述

stripEnd

在这里插入图片描述


去空 trim、trimToNull、trimToEmpty

其实 trimstrip 有些地方还是挺相同的,都可以去除字符串中首位空格;相比而言trim功能能独立一些,strip扩展性多一些

通过 StringUtils.trim,查看相关API

在这里插入图片描述

trim当数据为null、空字符串串、仅有空格字符串,根据传值返回 null、""、期望值

在这里插入图片描述

我自己试了一下" a b c ",果然是不支持去除中间空格的

 StringUtils.trim("")) //输出:""StringUtils.trim(" ")) //输出:""StringUtils.trim(" abc ")) //输出:abcStringUtils.trim(" a b c ") //输出:a b c

稍微注意下 StringUtils.trim(null) ,正常开发中在它上一层应该是已经抛去null场景了,假设遇到需要关注下以下问题

这种写法一般会导致程序奔溃,应该是空指针异常

 var trim = StringUtils.trim(null)Log.e("tag",  trim.toString())

如果想在这种场景使用的话,可以写个方法默认返回"",如下

 var trim = StringUtils.trim(null)if (StringUtils.isEmpty(trim))  trim = ""Log.e("tag",  trim.toString())

trimToNull、trimToEmpty :当数据为null、空字符串串、仅有空格字符串时,返回值有所不同

  • trimToNull返回的值为null
  • trimToEmpty返回的值为 ""

trimToNull当数据为null、空字符串串、仅有空格字符串,都会返回 null

在这里插入图片描述

trimToEmpty当数据为null、空字符串串、仅有空格字符串,都会返回 ""

在这里插入图片描述


判断 是否为数字 isNumeric、isNumericSpace

isNumeric

只有纯整数才会返回true,其余类型均为false,例如浮点型、正负数等

假设你需要判断是否为数字,及整数、小数的话,可以用 NumberUtils.isCreatable()

在这里插入图片描述

isNumericSpace

通过源码可以发现是在isNumeric的基础上,过滤了空串,支持以下场景可以

 StringUtils.isNumeric("10000").toString()  //输出:trueStringUtils.isNumericSpace("10 000").toString()  //输出:trueStringUtils.isNumericSpace("10 00 0 ").toString()  //输出:true

在这里插入图片描述


NumberUtils

NumberUtils官方文档(导入包:import org.apache.commons.lang3.math.NumberUtils;

在这里插入图片描述

有兴趣的可以直接跳 NumberUtils 类,通过 Ctrl+F12 查看方法

在这里插入图片描述

俩数比较

compare 只能比较俩个数值(如果涉及多数值比较,可看看max、min满不满足需求

在这里插入图片描述

示例

  NumberUtils.compare(1, 2); // -1 参数1比参数2大,返回1,否则返回-1

通过源码,可证明 参数1比参数2大,返回1,否则返回-1

在这里插入图片描述


获取 最大值、最小值

不论是最大值还是最小值,都有重载方法,可以传入一个数组,或者是3个数值

最小值

在这里插入图片描述

示例

  NumberUtils.min(new int[]{3, 5, 9})); // 3NumberUtils.min(3, 1, 4)); // 1

最大值

在这里插入图片描述

示例

  NumberUtils.max(new int[]{3, 5, 9}); // 9NumberUtils.max(3, 1, 4); // 4

判断 字符串是否为数字、是否全为数字

isCreatable 检查字符串是否为数字

  • isCreatable 最新
  • isNumber 过时方法
 NumberUtils.isCreatable("3.4"); // trueNumberUtils.isNumber("123"); // true

·isDigits 判断字符串中是否全为数字

 NumberUtils.isDigits("0000000000.596"); // falseNumberUtils.isDigits("0000000000596"); // true

类型创建 createInteger、createDouble 、createLong等

Api含义
createInteger通过字符串创建Integer
createLong通过字符串创建Long
createFloat通过字符串创建Float
createDouble通过字符串创建Double
createNumber通过字符串创建Number
createBigInteger通过字符串创建BigInteger
createBigDecimal通过字符串创建BigDecimal类型,支持long、int、float、double、number等数值

As 智能提示

在这里插入图片描述

NumberUtils

  NumberUtils.createInteger("11")NumberUtils.createDouble("10")

等同于 Java

  Integer.parseInt("11");Double.parseDouble("10");

等同于 Kt(Kt自带类型推导,使用便捷

  "11".toInt()"10".toDouble()

Kt的to类型,其内部源码也是封装了对应的扩展函数,实现也是用的Java的parse类型实现方式

在这里插入图片描述


类型转换 toInt、toDouble、toLong等

在这里插入图片描述

以 toInt 为例

As 智能提示

在这里插入图片描述

如果传空串,返回1,否则字符串转换为Int值

 NumberUtils.toInt("10",1);

通过toInt源码可以发现 to类型方法都是通过Java的parse类型转换,只是针对空值可设置返回默认值

在这里插入图片描述

http://www.hkea.cn/news/593414/

相关文章:

  • 山东网站建设电话长沙靠谱的关键词优化
  • 山东营销型网站ip网站查询服务器
  • 什么网站上做奥数题企业培训课程清单
  • 龙岩优化seo是什么意思
  • 外贸网站建设源码软文怎么做
  • 文章列表页wordpress宁波seo资源
  • 获取网站访客qq 原理百度投诉中心人工电话
  • 企业网站制作查询百度电话怎么转人工
  • 杭州专业网站建设怎样创建网站
  • 网站建设报价表格式淘宝关键词优化技巧
  • 高端网站建设系统百度网盘登录入口官网
  • ps做网站顶部江苏网络推广公司
  • 源码做网站手机网站百度关键词排名
  • 网站关键词分隔网站链接提交
  • 福永营销型网站多少钱中国最新消息今天
  • 做网站4000-262-263网站排名优化软件有哪些
  • 网站双链接怎么做网络舆情监测平台
  • 企业网站建设制作百度网盘下载app
  • asp做一个简单网站网络营销就是seo正确吗
  • 移动wap站点公司网站设计图
  • 网站策划建设seo搜索排名影响因素主要有
  • 大型商业广场网站建设互联网推广方案怎么写
  • p2vr做的网站上传网络广告策划书范文
  • 2022年大连黄页优化搜索引擎营销
  • 宁波有几个区昭通网站seo
  • 建设企业网站方案网站优化软件哪个好
  • 郑州做网站要搜索引擎最新排名
  • wordpress建好站了打不开首页成都关键词优化排名
  • 京东网站开发需求如何做谷歌优化
  • 微信app开发诊断网站seo现状的方法