(十三)Java工具类StringUtils中strip、stripStart、stripEnd剥离方法源码详解
1. strip方法源码解析
public static String strip(String str){return strip(str, null);}
源码解析:调用strip方法,参数是字符串str、剥离的字符是null;该方法主要的作用就是去除掉字符串两边的空白符,跟trim(Stirng str)的方法一样;
public static String strip(String str, String stripChars){if (isEmpty(str)) {return str;}str = stripStart(str, stripChars);return stripEnd(str, stripChars);}
public static String strip(String str, String stripChars){if (isEmpty(str)) {return str;}str = stripStart(str, stripChars);return stripEnd(str, stripChars);}
源码详解:该方法首先会判断字符串是否是空串,如果是直接返回空串(null或者“”或者tab键),false,会调用去除字符串start部分的空串和要剥离的字符方法,然后调用去除字符串end部分的空串和要剥离的字符方法;
public static String stripStart(String str, String stripChars){int strLen;if ((str == null) || ((strLen = str.length()) == 0))return str;int strLen;int start = 0;if (stripChars == null) {while ((start != strLen) && (Character.isWhitespace(str.charAt(start))))start++;}if (stripChars.isEmpty()) {return str;}while ((start != strLen) && (stripChars.indexOf(str.charAt(start)) != -1)) {start++;}return str.substring(start);}
源码详解:stripChars为null,会使用Character.isWhitespace剥离start和end处的空白符,stripChars为空串直接返回空串,stripChars不为空取到要剥离字符后的字符串的开始索引位置,并返回字符串;
public static String stripEnd(String str, String stripChars){int end;if ((str == null) || ((end = str.length()) == 0)) {return str;}int end;if (stripChars == null) {while ((end != 0) && (Character.isWhitespace(str.charAt(end - 1))))end--;}if (stripChars.isEmpty()) {return str;}while ((end != 0) && (stripChars.indexOf(str.charAt(end - 1)) != -1)) {end--;}return str.substring(0, end);}
源码详解:stripChars为null,会使用Character.isWhitespace剥离start和end的空白符,stripChars为空串直接返回空串,stripChars不为空取到要剥离的字符后字符串的结束索引位置,并返回字符串;
(十三)Java工具类StringUtils中strip、stripStart、stripEnd剥离方法源码详解相关推荐
- 微信小程序中一行2个图片排版源码详解
文章目录 效果图 一.wxml页面代码如下: 二.wxss样式代码如下: 三. js数据代码 效果图 一.wxml页面代码如下: <view class="schoollist&quo ...
- java的String类源码详解
java的String类源码详解 类的定义 public final class Stringimplements java.io.Serializable, Comparable<String ...
- java的数组与Arrays类源码详解
java的数组与Arrays类源码详解 java.util.Arrays 类是 JDK 提供的一个工具类,用来处理数组的各种方法,而且每个方法基本上都是静态方法,能直接通过类名Arrays调用. 类的 ...
- java源码详解——String类
java源码详解--String类目录: Java String 类 下面开始介绍主要方法: Java charAt() 方法 Java compareTo() 方法 int compareTo(St ...
- 基于JAVA计算机类专业考研交流学习平台计算机毕业设计源码+数据库+lw文档+系统+部署
基于JAVA计算机类专业考研交流学习平台计算机毕业设计源码+数据库+lw文档+系统+部署 基于JAVA计算机类专业考研交流学习平台计算机毕业设计源码+数据库+lw文档+系统+部署 本源码技术栈: 项目 ...
- 【java】LinkedList1.8源码详解
目录 前言 概要 属性 构造方法 核心方法 get(int index) set(int index, E element) add(int index, E element) addAll(Coll ...
- Java源码详解之NameValuePair
Java源码详解之NameValuePair NameValuePair仅仅是一个接口. 1. 类释义 /*** A name / value pair parameter used as an el ...
- 【JAVA秘籍心法篇-Spring】Spring XML解析源码详解
[JAVA秘籍心法篇-Spring]Spring XML解析源码详解 所谓天下武功,无坚不摧,唯快不破.但有又太极拳法以快制慢,以柔克刚.武功外式有拳打脚踢,刀剑棍棒,又有内功易筋经九阳神功.所有外功 ...
- Java集合框架源码详解系列(一)
写在前面:大家好!我是晴空๓.如果博客中有不足或者的错误的地方欢迎在评论区或者私信我指正,感谢大家的不吝赐教.我的唯一博客更新地址是:https://ac-fun.blog.csdn.net/.非常 ...
最新文章
- java fx配置_JavaFX系列-配置开发环境
- 如何读懂MEMS惯性器件的精度指标
- 天书夜读:WinDbg配置和使用基础
- 使用VS2013编译Lua5.3.2
- Java -----JVM运行时数据区
- 计算机系统怎么算页面大小,电脑网页的设计尺寸是多少
- mac php mcrypt,MacOSX 10.10安装mcrypt详细教程分享
- 从概念到落地,中台可以解决哪些问题?怎么做?(附PPT)
- 晨哥真有料丨你太容易被得到了!
- echarts 3d地图_用Echarts绘制地图-绘制省级地图
- flex和java_flex和java相结合准备工作和一个实例
- [转载] python字符串表示方法_python字符串使用方法归纳
- 完美解决VB中int to short溢出问题
- vue-router路由的使用
- Codeforces 712C Memory and De-Evolution
- 国内各大互联网公司相关技术博客3.0版 (集合腾讯、阿里、百度、搜狐、新浪、网易、360等共29个)
- MindManager2022注册码-激活码-序列号相关问题解答
- C语言二叉树非递归遍历详解,C语言实现二叉树的递归遍历和非递归遍历
- 音视频系列--MediaProjection录屏生成H264和H265文件
- bypy更换绑定的百度云盘账户