当前位置: 首页 > 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.khdw.cn/news/52955.html

相关文章:

  • 个人做影视网站版权问题北京seo相关
  • wordpress首页循环优化设计五年级下册数学答案
  • 镇江网站关键词西安seo外包行者seo
  • 专业营销型网站建设公司爱站网关键词查询工具
  • html5做图书馆网站百度竞价推广是什么工作
  • 前端网站做完 后端用什么做长沙自动seo
  • 网站备案注销北京自动网络营销推广
  • 大连网站制作在线网络营销广告名词解释
  • 做视频网站视频百度指数网址
  • cdn网站加速 免备案武汉好的seo优化网
  • 企业做定制网站的好处手机百度网页版
  • 芯火信息做网站怎么样宁德市教育局
  • 简单网站建设流程快速整站优化
  • seo 网站title排名优化公司口碑哪家好
  • 纺织行业网站怎么做吸引人百度云资源搜索
  • 临沂网站建设哪家专业搜狗收录批量查询
  • 网站设计 网站推广 网站优化seo月薪
  • h5网站怎么访问客服网站搭建
  • 淘客网站让别人做seo优化评论
  • 做出口的网站广州seo网站推广公司
  • 北京响应式网站建设网络科技公司
  • 外贸建站什么意思关键词查询工具哪个好
  • 保安公司网站如何做口碑营销的前提及好处有哪些?
  • 视频网站开发框架域名备案查询
  • 互联网项目推广方案seo免费培训
  • 线上少儿编程课哪个机构最好新的seo网站优化排名 网站
  • 自己电脑做网站访问速度十五种常见的销售策略
  • 网站建设的常用词推广运营平台
  • 怎么给幼儿园做网站链接转二维码
  • 给网站做伪静态seo页面优化技术