org.apache.commons.lang.StringUtils这个字符串处理的类

Origin科研绘图——桑基图 是一种用于展示“流动”(flow)关系的可视化图表,常用于呈现能量流、物质流、资金流、信息流等在不同节点之间的传递和分配情况。它最大的特点是用“宽度可变的流线”来直观表示数量大小——流线越宽,代表流量越大,因此特别适合理解复杂系统中资源从哪里来、到哪里去、以及不同路径所占比例。为该流程对应的数量。只需将各个流程逐项填写在 A、B、C 三列即可,流程的排列顺序并非关键,确保起点、终点及对应数值准确才是最重要的。与柱状图、饼图不同,桑基图不仅展示“多少”,还展示“从哪到哪”。至此,本期教程就结束啦。 阅读详情
 Java中,用逗号分隔一个字符串”a,,b,c,”,结果是一个长度为5的数组:

["a", "", "b", "c", ""]

而大部分情况下,那些空字符串是不想要的,于是在循环中我们就需要一一判断字符串是不是空的。StringUtils.split方法就帮我们按照这种思路来分割字符串。

许多开发人员抱怨Java没有提供一个join方法,StringUtils.join解决了这个问题。

你怎么判断用户的输入是不是空?如果做完整的验证,应该是:

if (input != null && input.trim().length > 0) {…}

StringUtils.isBlank方法为我们做这样的判断,它会正确处理null和全部空格的情况。

StringUtils类还有许多其它的实用方法,可以适应我们日常编程中的大部分字符串处理。另外commons-lang还提供了一个StringEscapeUtils类,可以帮助你防止SQL injection,在HTML中正常输出用户输入的尖括号等。

虽然我没有仔细看过源代码,不过作为通用的方法,commons-lang对性能的考虑应该比较周到,这一点可以放心。

 

接下来我准备用两个例子来分别说明ArrayUtils和StringUtils的常见用法。

ArrayUtils

数组是我们经常需要使用到的一种数据结构,但是由于Java本身并没有提供很好的API支持,使得很多操作实际上做起来相当繁琐,以至于我们实际编码中甚至会不惜牺牲性能去使用Collections API,用Collection当然能够很方便的解决我们的问题,但是我们一定要以性能为代价吗?ArrayUtils帮我们解决了处理类似情况的大部分问题。来看一个例子:

 

package sean.study.jakarta.commons.lang;

 

import java.util.Map;

import org.apache.commons.lang.ArrayUtils;

 

public class ArrayUtilsUsage {

 

    public static void main(String[] args) {

 

        // data setup

        int[] intArray1 = { 2, 4, 8, 16 };

        int[][] intArray2 = { { 1, 2 }, { 2, 4 }, { 3, 8 }, { 4, 16 } };

        Object[][] notAMap = {

                { "A", new Double(100) },

                { "B", new Double(80) },

                { "C", new Double(60) },

                { "D", new Double(40) },

                { "E", new Double(20) }

        };

 

        // printing arrays

        System.out.println("intArray1: " + ArrayUtils.toString(intArray1));

        System.out.println("intArray2: " + ArrayUtils.toString(intArray2));

        System.out.println("notAMap: " + ArrayUtils.toString(notAMap));

 

        // finding items

        System.out.println("intArray1 contains '8'? "

                + ArrayUtils.contains(intArray1, 8));

        System.out.println("intArray1 index of '8'? "

                + ArrayUtils.indexOf(intArray1, 8));

        System.out.println("intArray1 last index of '8'? "

                + ArrayUtils.lastIndexOf(intArray1, 8));

 

        // cloning and resversing

        int[] intArray3 = ArrayUtils.clone(intArray1);

        System.out.println("intArray3: " + ArrayUtils.toString(intArray3));

        ArrayUtils.reverse(intArray3);

        System.out.println("intArray3 reversed: "

                + ArrayUtils.toString(intArray3));

 

        // primitive to Object array

        Integer[] integerArray1 = ArrayUtils.toObject(intArray1);

        System.out.println("integerArray1: "

                + ArrayUtils.toString(integerArray1));

 

        // build Map from two dimensional array

        Map map = ArrayUtils.toMap(notAMap);

        Double res = (Double) map.get("C");

        System.out.println("get 'C' from map: " + res);

 

    }

 

}

 

以下是运行结果:

 

intArray1: {2,4,8,16}

intArray2: {{1,2},{2,4},{3,8},{4,16}}

notAMap: {{A,100.0},{B,80.0},{C,60.0},{D,40.0},{E,20.0}}

intArray1 contains '8'? true

intArray1 index of '8'? 2

intArray1 last index of '8'? 2

intArray3: {2,4,8,16}

intArray3 reversed: {16,8,4,2}

integerArray1: {2,4,8,16}

get 'C' from map: 60.0

 

这段代码说明了我们可以如何方便的利用ArrayUtils类帮我们完成数组的打印、查找、克隆、倒序、以及值型/对象数组之间的转换等操作。如果想了解更多,请参考Javadoc。

 

StringUtils

 

处理文本对Java应用来说应该算是家常便饭了,在1.4出现之前,Java自身提供的API非常有限,如String、StringTokenizer、StringBuffer,操作也比较单一。无非就是查找substring、分解、合并等等。到1.4的出现可以说Java的文字处理上了一个台阶,因为它支持regular expression了。这可是个重量级而方便的东东啊,缺点是太复杂,学习起来有一定难度。相较而言,Jakarta Commons提供的StringUtils和WordUtils至今还维持着那种简洁而强大的美,使用起来也很顺手。来看一个例子:

 

package sean.study.jakarta.commons.lang;

 

import org.apache.commons.lang.StringUtils;

 

public class StringUtilsAndWordUtilsUsage {

 

    public static void main(String[] args) {

       

        // data setup

        String str1 = "";

        String str2 = " ";

        String str3 = "/t";

        String str4 = null;

        String str5 = "123";

        String str6 = "ABCDEFG";

        String str7 = "It feels good to use Jakarta Commons./r/n";

       

        // check for empty strings

        System.out.println("==============================");

        System.out.println("Is str1 blank? " + StringUtils.isBlank(str1));

        System.out.println("Is str2 blank? " + StringUtils.isBlank(str2));

        System.out.println("Is str3 blank? " + StringUtils.isBlank(str3));

        System.out.println("Is str4 blank? " + StringUtils.isBlank(str4));

       

        // check for numerics

        System.out.println("==============================");

        System.out.println("Is str5 numeric? " + StringUtils.isNumeric(str5));

        System.out.println("Is str6 numeric? " + StringUtils.isNumeric(str6));

       

        // reverse strings / whole words

        System.out.println("==============================");

        System.out.println("str6: " + str6);

        System.out.println("str6 reversed: " + StringUtils.reverse(str6));

        System.out.println("str7: " + str7);

        String str8 = StringUtils.chomp(str7);

        str8 = StringUtils.reverseDelimited(str8, ' ');

        System.out.println("str7 reversed whole words : /r/n" + str8);

       

        // build header (useful to print log messages that are easy to locate)

        System.out.println("==============================");

        System.out.println("print header:");

        String padding = StringUtils.repeat("=", 50);

        String msg = StringUtils.center(" Customised Header ", 50, "%");

        Object[] raw = new Object[]{padding, msg, padding};

        String header = StringUtils.join(raw, "/r/n");

        System.out.println(header);

 

    }

}

 

输出的结果如下:

 

==============================

Is str1 blank? true

Is str2 blank? true

Is str3 blank? true

Is str4 blank? true

==============================

Is str5 numeric? true

Is str6 numeric? false

==============================

str6: ABCDEFG

str6 reversed: GFEDCBA

str7: It feels good to use Jakarta Commons.

 

str7 reversed whole words :

Commons. Jakarta use to good feels It

==============================

print header:

==================================================

%%%%%%%%%%%%%%% Customised Header %%%%%%%%%%%%%%%%

==================================================

 

从代码中我们可以大致了解到这个StringUtils类简单而强大的处理能力,从检查空串(对null的情况处理很得体),到分割子串,到生成格式化的字符串,使用都很简洁,也很直截了当。

24. 在QML界面中嵌入QWidget窗口 目前QT官方主推的界面开发方式是采用QML进行界面设计,但在QML未流行之前,很多的项目都是采用QWidget开发的,把之前的代码全部转换为QML代码显然工作量非常大,如果能将QWidget窗口嵌入到QML界面中,那么开发效率将提高很多,且QML无法实现的功能也能借助于QWidget框架进行实现。 阅读详情

相关推荐

PLS-PM with R 偏最小二乘路径建模 (R语言)

1. 引入 1.1. 安装plspm包 plspm 是一个用于执行偏最小二乘路径建模分析的 r 程序包。 在 CRAN 上可以免费下载: Http://cran.r-project.org/web/packages/plspm/index.html. 此后,通过以下代码在r中安装并加载该程序包即可。 install.packages("plspm") library("plspm") 2. 一些简单概念 2.1. 潜变量和观测变量 不少变量如满意度、成功指数是无法通过观测得到

Wowlittlemoon的博客 1万+

apache commons StringUtils介绍

apache commons StringUtils介绍 热4已有 1529 次阅读  2012-05-06 21:27  标签: apache  apache commons StringUtils介绍 org.apache.commons.lang.StringUtils StringUtils是apache commons lang库(http://comm

zon的专栏 1万+

Linux 命令之 localectl -- 控制系统的本地化与键盘布局

文章目录命令介绍常用选项参考示例(一)显示当前的本地化设置与键盘映射(二)设置系统的本地化字符集环境变量(三)列出本地所有字符集(四)列出所有可用的控制台键盘映射(五)设置控制台的键盘映射 命令介绍 localectl 命令可用于查询与修改系统的本地化(locale)与键盘布局的设置。 它通过与 systemd-localed.service 通信来修改例如 /etc/locale.conf 与 /etc/vconsole.conf 之类的配置文件。本地化设置控制着 用户界面的语言、字符类型与字符编码、 日

liaowenxiong的博客 5396

org.apache.commons.lang.StringUtils常用方法

参考文章:https://www.cnblogs.com/stm32stm32/p/9178180.html,https://www.cnblogs.com/renjiaqi/p/11321745.html package cn.wiztek.chsls.license; import org.apache.commons.lang.StringUtils; public class Te...

qq_36750461的博客 2448

SAP开发顾问简历模板范文(精选篇)

SAP开发顾问简历该怎么写呢?

Huanzhucv的博客 1568

线性代数学习笔记(十)——矩阵运算(二)

本篇笔记讲解矩阵的幂运算和矩阵的转置,其中矩阵进行幂运算的前提是矩阵为方阵,矩阵幂运算的两条性质与数的幂运算规则类似;矩阵转置的定义与行列式转置类似,但要注意由于矩阵的行数和列数不同,所以转置之后行数和列数变换。

li2008kui的专栏 1万+

Apache Commons包 StringUtils工具类深入整理(转载)

字符串是在程序开发中最常见的,Apache Commons开源项目在org.apache.commons.lang3包下提供了StringUtils工具类,该类相当于是对jdk自带的String类的增强,主要做了几方面的处理: 1.核心设计理念就是对于null的进行内部处理,使用时不再需要进行繁琐的null值判定,同时也避免抛出空指针的异常 2.作为工具类,通过增加额外处理的方式,尽量避免抛出异常,例如截取字符串,如指定长度超过了最大长度,不会抛出异常 3.通过更多的重载方法,实现了忽略大小写、增加控制范围

ABCAA1024的博客 1854

战舰V3移植CANopenNode并驱动电机全流程

第三部分是电机的对象字典(也就是节点的OD)中的索引,长度2个字节。索引发送的是小段模式,比如这一部分为0X40 0X60,实际操作的索引地址为0X6040。第一部分是COB-ID,长度1个字节,电机的node-ID默认为0x01,所以报文ID一直是601。第五部分是要写入的数据,数据发送的时候是小端模式,低字节数据先发送,长度由第二部分决定。配置定时器6,时间为1ms,根据公式计算得到参数PSC取72-1,ARR取1000-1。第二部分是CMD,长度1个字节,其实就是数据部分的长度,

qq_50526837的博客 3045

import org.apache.commons.lang.StringUtils报错 StringUtils无法识别

import org.apache.commons.lang.StringUtils报错 出错状况:Apache Commons Lang 包正确导入,但是在control中无法导入org.apache.commons.lang.StringUtils;即import org.apache.commons.lang.StringUtils报红。 原因分析:可能是下载的多个Apache Commons Lang 包冲突。 解决办法:在C:\Users{admin}.m2\repository\org\apac

Blmq的博客 5821

k8s部署 普罗米修斯(Prometheus)监控

Prometheus是一个开源的服务监控系统和时序数据库其提供了通用的数据模型和快捷数据采集、存储和查询接口它的核心组件Prometheus服务器定期从静态配置的监控目标或者基于服务发现自动配置的目标中进行拉 取数据新拉取到啊的 数据大于配置的内存缓存区时,数据就会持久化到存储设备当中。

D2961953033的博客 3854

高空抛物监控系统:基于YOLOv8的轨迹追踪与可视化系统

本文详细介绍了一种基于YOLOv8深度学习模型的高空抛物监控系统,该系统能够实时检测并追踪高层建筑抛掷物的运动轨迹。文章包含完整的系统设计思路、算法实现细节、数据集构建方法以及基于PyQt5的可视化界面开发过程。我们提供了完整的Python实现代码,并讨论了系统的性能优化策略和实际部署考量。此外,我们还推荐了几个公开可用的高空抛物数据集,并详细分析了系统的应用前景和技术挑战。

YOLO 446

Apache Commons Lang库中StringUtils类用法总结

是 Apache Commons Lang 库中的一个非常有用的类,它为操作和检查String提供了大量的静态方法。这里我将概述这个类中一些常用方法的用途和基本用法。

ht64620350的博客 1724

Claude Code Skills 入门:内置技能与自定义技能开发

│ Skill 的特点 │1. 封装性:把复杂操作封装成简单命令2. 可复用:一次定义,随处使用3. 可定制:支持参数传入4. 可发现:通过 /skill-name 方式调用打个比方,如果说 Claude Code 的基础工具是「原材料」,那 Skills 就是「预制菜」——只需要简单加热(调用),就能得到成品(结果)。你可以创建自己的 Skill 来封装常用操作。Skill 支持参数,通过。

gaoxiang_120的专栏 670

org.apache.commons.lang.StringUtils处理字符串类

org.apache.commons.lang Class StringUtilsjava.lang.Object  org.apache.commons.lang.StringUtilspublic class StringUtilsextends ObjectOperations on String that are null safe. 字符串是null安全的

地狱城市的专栏 1305

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

■■■Java中对字符串的处理

说说Java中对String的处理。 总结一下java.lang.String、org.apache.commons.lang3.StringUtils、org.springframework.util.StringUtils几个类提供的各种方法。 ■java.lang.String ■java.lang.String No 方法 参数 返回值类型 说明 使用...

weixin_41368339的博客 414

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

StringUtils方法全集

org.apache.commons.lang.StringUtils中方法的操作对象是java.lang.String类型的对象,是JDK提供的String类型操作方法的补充,并且是null安全的(即如果输入参数String为null则不会抛出NullPointerException,而是做了相应处理,例如,如果输入为null则返回也是null等,具体可以查看源代码)。 除了构造器,Str

qq_31307253的博客 642

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Java的org.apache.commons.lang3.StringUtils

Java的org.apache.commons.lang3.StringUtils 1.用途 StringUtils提供了对String 类型的常用操作方法(如判空等)。StringUtils中的方法都是静态方法。 2.常用方法 2.1 boolean isEmpty(String str) 判断字符串是否为null或者""(空串) StringUtils.isEmpty(null) //true StringUtils.isEmpty("") //true StringUtils.isEmpty(" "

qq_43203949的博客 576

org.apache.commons.lang.StringUtils类提供了String的常用操作,最为常用的判空有如下两种isEmpty(String str)和isBlank(String st

org.apache.commons.lang.StringUtils类提供了String的常用操作,最为常用的判空有如下两种isEmpty(String str)和isBlank(String str)。 StringUtils.isEmpty(String str) 判断某字符串是否为空,为空的标准是 str==null 或 str.length()==0 System.out.p

qq_19674905的博客 594

org.apache.commons.lang.StringUtils

//org.apache.commons.lang.StringUtils //(6ooo#~~~)第一个#开始截取(从左起) System.out.println( StringUtils.substringAfter("234556#6ooo#~~~", "#")); //(~~~)最后一个#开始截取 System.o...

WisonKot 124

StringUtils类和collectionUtils的用法

org.apache.commons.lang.StringUtils中方法的操作对象是java.lang.String类型的对象,是JDK提供的String类型操作方法的补充,并且是null安全的(即如果输入参数String为null则不会抛出NullPointerException,而是做了相应处理,例如,如果输入为null则返回也是null等,具体可以查看源代码)。其中,方法80--85适用

yuyufeiniao1018的专栏 1493

StringUtils方法使用

org.apache.commons.lang.StringUtils中方法的操作对象是java.lang.String类型的对象,是JDK提供的String类型操作方法的补充,并且是null安全的(即如果输入参数String为null则不会抛出NullPointerException,而是做了相应处理,例如,如果输入为null则返回也是null等,具体可以查看源代码)。 除了构造器,Str

xiaobudaics的专栏 406

StringUtils的了解

 org.apache.commons.lang.StringUtils中方法的操作对象是java.lang.String类型的对象,是JDK提供的String类型操作方法的补充,并且是null安全的(即如果输入参数String为null则不会抛出NullPointerException,而是做了相应处理,例如,如果输入为null则返回也是null等,具体可以查看源代码)。 除了构造器,S

qq_35091777的博客 404

StringUtils.isEmpty()和StringUtils.isBlank()

StringUtils 类为:org.apache.commons.lang3.StringUtils的工具类 System.out.println(StringUtils.isBlank(null)); //true System.out.println(StringUtils.isBlank("")); //true System.out.println(StringUtils.isBlank(" ")); //true System.out.println(Stri

梦醉的博客 168

JAVA StringUtils工具类

org.apache.commons.lang Class StringUtils java.lang.Object org.apache.commons.lang.StringUtils public class StringUtilsextends Object   Operations on String that are null safe. IsEmp

qq_28048579的博客 223

StringUtils >>>>>>isEmpty 和 isBlank区别

commons.lang3 学习No.1     StringUtils 是 org.apache.commons.lang3.StringUtils包中的一个字符串的工具类,其中isEmpty 和 isBlank 功能是比较类似的,容易混淆,学习一下: isEmpty : 判断某字符串是否为空,为空的标准是 str==null或 str.length()==0 StringUtils.i...

smileKutper的博客 392

lang.StringUtils

org.apache.commons.lang.StringUtils是操纵String类的实用类.    http://dev2dev.bea.com.cn/techdoc/2005071902.html 处理字符串   无论应用程序是基于Swing、J2EE或J2ME的,它都必须使用字符串。所以,尽管在Java中使用字符串相当简单,但是如果希望按照一定的条件 修改和处理字符串,...

碧清世界,有我,还有你。 285
上一篇: 实战 Lucene
下一篇: org.apache.commons.lang.StringUtils 的应用
hjpengjava
博客等级 码龄18年 5粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值