首页 > 编程语言 >StringUtils使用与源码分析

StringUtils使用与源码分析

时间:2024-02-16 14:55:26浏览次数:29  
标签:分析 字符 String indexof StringBuilder 源码 字符串 方法 StringUtils

在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

相关文章

  • Ubuntu 22.04 源码安装ST-Link V2过程详解
    一首先安装依赖工具:A安装预编译库:sudoapt-getinstallgitmakecmakelibusb-1.0-0-devB安装gcc库:sudoapt-getinstallgccbuild-essential二源码安装A下载代码gitclonehttps://github.com/stlink-org/stlink.gitB编译:cmake.makeC复制二进......
  • scratch源码下载 | 炮轰僵尸
    程序说明:《炮轰僵尸》是一款基于Scratch平台制作的游戏程序,它采用了植物大战僵尸的经典场景。在游戏中,玩家需要控制一枚大炮来对抗不断入侵的僵尸。通过移动鼠标,玩家可以调整炮筒的方向,并在合适的时机按下鼠标左键发射炮弹,以消灭逼近的僵尸。这款游戏不仅提供了紧张刺激的游戏体......
  • scratch源码下载 | 几何冲刺
    程序说明:《几何冲刺》是一款基于Scratch平台开发的跑酷类游戏程序。在这个游戏中,玩家控制一个黄色的小方块,在快速向前冲刺的过程中躲避各种障碍物。通过按下键盘上的上方向键,玩家可以操作小方块进行跳跃,以避开途中的障碍。游戏的目标是尽可能让黄色小方块跑得更远,挑战玩家的反应......
  • scratch源码下载 | 蜘蛛传说
    程序说明:《蜘蛛传说》是一个通过Scratch平台制作的互动游戏项目。在这个故事中,玩家将扮演一只蜘蛛,其原本和平的生活被一只入侵的壁虎所打破。为了保卫自己的家园,蜘蛛必须运用智慧和勇气与壁虎对抗。游戏通过ADSW键进行移动,F键发射蜘蛛弹来攻击壁虎,但发射蜘蛛弹会消耗体力。玩家需......
  • scratch源码下载 | 飞天厨师
    程序说明:《飞天厨师》是一款使用Scratch平台制作的游戏程序。在这个游戏中,玩家将控制一名厨师角色,他在天空中不断掉落。玩家需要利用方向键左右移动厨师,以便他能够准确地踩在空中的食物上。每当厨师成功踩到食物时,他就会飞得更高。如果厨师在掉落的过程中没有踩到任何食物,游戏就......
  • Scratch源码下载 | 3D钻石
    程序说明:《3D钻石》是一个利用Scratch平台创作的独特艺术作品。此程序在屏幕上呈现一个精致的3D钻石模型,允许用户通过鼠标操作来旋转和查看钻石的不同角度。该程序还提供了修改钻石参数的功能,使用户能够自定义钻石的外观和特性。由于其复杂的3D渲染和交互设计,这个作品的制作难度......
  • idea 通过maven下载源码
    【问】如上图,IDEA中点击DownloadSource(下载源码)后,下载的源码存储到哪了? 【答】先找到此源码所属Jar包在哪;点击DownloadSource(下载源码)后,会发现存储Jar包的位置多了一个后缀带有-sources的Jar包,这就是IDEA为我们下载的源码。【问】如何找此源码所属Jar包在哪......
  • PyZelda 源码解析(全)
    .\Zelda-with-Python\Code\Debug.py#导入pygame和os模块importpygameimportos#设置当前工作目录为项目所在的目录,用于导入文件(特别是图片)os.chdir(os.path.dirname(os.path.abspath(__file__)))#初始化pygamepygame.init()#创建字体对象,用于在屏幕上显示调试信......
  • Cocos Creator 2.X(Cocos2d-js)游戏资源目录分析&逆向还原
    拿到了某变态服游戏,打开lib看到了libcocos2djs.so,判断版本为2.4。游戏把资源文件下载到了/data下,因此需要root。目录结构如下:g4-start/├──config.json├──import│ ├──1e│ │ └──1ea6e4bcd.json│ └──e7│   └──e76cb2d2-fa48-4916-......
  • Ubuntu 中通过源码安装 Python3.x 环境
    最近在个人前后端分离项目时候,后端接口程序fastapi,在部署的时候,需要Pyhton3.8以上的环境,但ubuntu默认的是2.7于是想通过源码安装的方式进行环境搭建.下载官网下载二进制源码安装包:https://www.python.org/downloads/source/wegthttps://www.python.org/ftp/......