Apacehe-commons-lang中提供了ChartUtils这个以关键性的工具类,充分的对字符转换字符串,字符转换字符对象,转换整型,字符串转换,null和空字符串等提供了处理。


1.ChartUtils提供的方法

toCharacterObject(char) 将参数字符转换为字符对象
toCharacterObject(String) 将参数字符串的第一个字符转换为字符对象
toChar(Character) 将参数字符对象转换为字符
toChar(Character, char) 将第一个参数字符对象转换为字符,若为null则用第二个参数代替
toChar(String) 将参数字符串的第一个字符转换为字符
toChar(String, char) 将第一个参数字符串的第一个字符转换为字符,若为null或者长度为0则用第二个参数代替
toIntValue(char) 字符转换整型
toIntValue(char, int)
toIntValue(Character)
toIntValue(Character, int)
toString(char) 字符转换字符串
toString(Character)
unicodeEscaped(char) 对字符进行unicode编码转换
unicodeEscaped(Character)
isAscii(char)
isAsciiPrintable(char) 判断参数字符是否为打印字符[32,127)
isAsciiControl(char) 判断参数字符是否为控制字符,小于32或者等于127
isAsciiAlpha(char) 对字符进行字母,大小写字母,数字等进行判断
isAsciiAlphaUpper(char)
isAsciiAlphaLower(char)
isAsciiNumeric(char)
isAsciiAlphanumeric(char)

2.关于toChar(String, char)方法

1
2
3
4
5
6
public static char toChar(String str, char defaultValue) {
        if (StringUtils.isEmpty(str)) {
            return defaultValue;
        }
        return str.charAt(0);
    }

说明:字符串的第一个字符作为转换后的char,当字符串为null或者长度为0的时候,将用第二个参数defaultvalue替代作为返回字符。

在1.中个各方法相关的第二个参数通常作为替代值出现。


3.ChartUtils工具类实现对字符的判断,例如,数子,大小写字母,控制字符。

以isAscii(char)代表的一系列isXXX(char)方法实现了这些功能。内部实现主要是基于字符与ASCII码之间的对应关系。


Apache-commons-lang提供的CharSequenceUtils类对字符序列进行处理。字符序列处理和字符串处理有着极大的相似之处。


4.CharSequenceUtils类提供的基本方法

subSequence(CharSequence,  int) 截取字符序列
indexOf(CharSequence, int, int) 从前往后判断第二个参数值在字符序列中的位置
indexOf(CharSequence, CharSequence, int)
lastIndexOf(CharSequence, int, int) 从后往前判断第二个参数值在字符序列中的位置
lastIndexOf(CharSequence, CharSequence,  int)
toCharArray(CharSequence) 字符序列转换为字符数组
regionMatches(CharSequence, boolean, int,  CharSequence, int, int) 字符序列匹配,第二个参数大小写处理方式true忽略大小写,false反之

5.提供的Char相关的类有ChartUtils,CharSequenceUtils,CharSet,ChartSetUtils,CharEncoding,CharRange类对字符和字符对象进行了相关处理,提供了一套完整的字符处理工具集合。


参见其他工具类:

ObjectUtils Range:

http://aiilive.blog.51cto.com/1925756/1282061

ArrayUtils :

http://aiilive.blog.51cto.com/1925756/1282062

StringUtils, RandomStringUtils:

http://aiilive.blog.51cto.com/blog/1925756/1282146


个人认为字符工具了能在字符流的处理中能给解决问题带来很大的方便。字符串的转换,字符和整型的转换,字符集合,字符编码,字符序列的处理都可能在处理字符流过程中的细节问题上发挥很大的功效。

本文转自 secondriver 51CTO博客,原文链接:http://blog.51cto.com/aiilive/1282066,如需转载请自行联系原作者

读源码Apache-commons-lang3-3.1(三)相关推荐

  1. org.apache.commons.lang3.StringUtils 的相关用法

    一.jar包下载 commons-lang3-3.1.jar java 开发工具commons-lang3-3.0 jar包,有org.apache.commons.lang3.StringUtils ...

  2. 程序中的日期使用问题-格式转化:SimpleDateFormat、org.apache.commons.lang3.time.DateUtils

    前言 日期使用问题主要是格式转换的问题 场景:通过excel导入数据,其中一个字段为出生日期,需要对字段值进行合法性校验 博客地址:芒果橙的个人博客 [http://mangocheng.com] 文 ...

  3. Spark - Illegal pattern component: XXX 与org.apache.commons.lang3.time.FastDateFormat incompatible

    一.引言 使用 sparkSession 读文件时出现 java.lang.IllegalArgumentException: Illegal pattern component: XXX 报错,解决 ...

  4. 带着问题读源码-soul(2021-01-16)

    ### 带着问题读源码系列之Dubbo插件 像往常一样启动 [soul-admin] 和 [soul-bootstrap] . 因为dubbo需要依赖zookeeper, 需要需要启动一个监听在 lo ...

  5. 我是怎么读源码的,授之以渔

    点击上方"视学算法",选择"设为星标" 做积极的人,而不是积极废人 作者 :youzhibing 链接 :https://www.cnblogs.com/you ...

  6. 错误: java.lang.ClassNotFoundException: org.apache.commons.lang3.StringUtils

    做项目的时候,实现图片异步上传并返回json数据,但是图片上传成功,json数据没有返回,报错:  java.lang.ClassNotFoundException: org.apache.commo ...

  7. Java中字符串工具类继承org.apache.commons.lang3.StringUtils类代码

    场景 转换为字节数组:是否包含字符串:替换掉HTML标签方法:替换为手机识别的HTML,去掉样式及属性,保留回车: 缩略字符串(不区分中英文字符):转换为Double类型:转换为Float类型:转换为 ...

  8. 这样读源码,不牛X也难

    程序员在工作过程中,会遇到很多需要阅读源码的场景,比如技术预研.选择技术框架.接手以前的项目.review他人的代码.维护老产品等等.可以说,阅读源代码是程序员的基本功,这项基本功是否扎实,会在很大程 ...

  9. Java的org.apache.commons.lang3.StringUtils

    Java的org.apache.commons.lang3.StringUtils 1.用途 StringUtils提供了对String 类型的常用操作方法(如判空等).StringUtils中的方法 ...

  10. myisam怎么读_耗时半年,我成功“逆袭”,拿下美团offer(刷面试题+读源码+项目准备)...

    欢迎关注专栏[以架构赢天下]--每天持续分享Java相关知识点 以架构赢天下​zhuanlan.zhihu.com 以架构赢天下--持续分享Java相关知识点 每篇文章首发此专栏 欢迎各路Java程序 ...

最新文章

  1. 此选项卡已恢复的处理过程
  2. Mac下使用OpenCV
  3. 08年哈弗校长Faust给毕业生的演讲
  4. 宝塔php7.1地址在哪里,宝塔Linux面板安全入口地址忘了(方法一)
  5. 21.Odoo产品分析 (三) – 人力资源板块(2) – 工时表(1)
  6. VC 6.0 + SP6 下载 及 安装详细说明
  7. 如何设置运行在Virtualbox内的Ubuntu虚拟机的静态ip地址
  8. MongoDB 3.X 用户权限控制
  9. Object-c基础(2)
  10. vue报错getVueAllUser:67 Uncaught TypeError: Cannot read property 'userId' of undefined
  11. 第十二 关于JavaScript
  12. 判断多边形边界曲线顺/逆时针 两种方法
  13. Microsoft Excel 教程,如何在 Excel 中使用自动求和?
  14. 修改XMAPP中Apache的默认访问的主页
  15. Tibco Designer -- 循环遍历
  16. IDEA中maven项目dependencies报错飘红问题解决
  17. UEFI小结-Handle的来龙去脉
  18. 【MYSQL】ERROR 1366 (HY000)
  19. 什么软件能打开prt文件_PRT文件扩展名 - 什么是.prt以及如何打开? - ReviverSoft...
  20. 推荐一些变态好用的软件,长期更新(部分附带资源链接)

热门文章

  1. instagram api java_如何在没有用户交互的情况下获得instagram access_token(新api)?...
  2. 清除浏览器缓存之后为什么还是显示旧的html页面_Web缓存知识
  3. Java天使之恋攻略,跑跑卡丁车手游天使之恋怎么得 天使之恋获取攻略[多图]
  4. Efficiency / Relative Efficiency and the Efficient Estimator
  5. 【 MATLAB 】序列运算之序列移位的函数实现
  6. 【 C 】结构的自引用
  7. 2018.11月Android优质开源项目
  8. Windows自带的端口转发工具netsh使用方法_DOS/BAT
  9. 数据结构-浙大 MOOC 笔记一 基本概念
  10. 为什么在系统中使用JSON