在apache的lang3包中有个StringUtils工具类,该工具类为开发中常用的字符串处理工具类
非空判断,isBlank和isEmpty
这俩方法的形参都是charSequence字符序列。
isEmpty判断这个字符序列是否为null,还有长度是否为0,如果是,则返回true,反之返回false
isBlank在isEmpty之上还有一个,如果长度长度大于0,则循环判断里面的每个字符(charSequence.charAt(int i))去判断字符里是否包含空格字符,也就是Character的isWhiteSpace方法判断,如果包含,则返回false代表非空,如果都是空格字符,则返回true代表为空。
字符串拼接,左拼接leftPad和右拼接rightPad
内部实现的核心逻辑都是String的concat方法,将多余出来的长度通过Arrays.fill方法组装成一个char数组,再强转成String,之后再根据左右去调用concat方法。
大写小转化,lowerCase和upperCase
内部使用String的toLowerCase和toUpperCase实现。
remove、replace
核心逻辑就是StringBuilder的append方法和String的indexof方法。
remove:new一个StringBuilder,通过String的indexof和要被移除的字符串长度判断截断的起始位置,截断这一段字符串后,通过while循环判断截断后的字符串里是否还有当前需要被移除的字符串,依旧还是indexof判断。
repalce:在以上的逻辑上加上一段截断一次后再append相应的需要替换的字符。
reverse
StringBuilder的reverse方法倒序输出字符串。
contains
String的indexof方法。
将列表转String,join
while循环迭代器Iterator.hasNext方法实现,通过StringBuilder.append拼接列表里的元素,包括分隔符
标签:分析,字符,String,indexof,StringBuilder,源码,字符串,方法,StringUtils From: https://www.cnblogs.com/zeevy/p/18017150