原文地址:http://abeetle.iteye.com/blog/233896
今天刚发现StringUtils,觉得不错,特意深入了解了一下,做个说明,以供今后参考:
类包是:org.apache.commons.lang.StringUtils
Java1.4的文字处理上支持regular expression了。这可是个重量级而方便的东东啊,缺点是太复杂,学习起来有难度。相较而言,Jakarta Commons提供的StringUtils和WordUtils至今还维持着那种简洁而强大的美,使用起来也很顺手。Commons Lang的StringUtils包加入到类路径中。StringUtils类中有不计其数的有用的方法.
来个简单点的例子:
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 检查字符串是否为空或null或仅仅包含空格
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 %%%%%%%%%%%%%%%%
==================================================
除此之外,还有比较常用的用法:
如果你需要重复的书写同一个数字,你可以这么写:
log(StringUtils.leftPad("34", 8, "0"));
// 00000034
又或者你需要在一个数组中加入一个元素,你可以这么做:
log(StringUtils.join(new String[]{"cat","dog","carrot","leaf","door"}, ":")
// cat:dog:carrot:leaf:door
如果你需要一个大写字母或者是需要一个字符串中的每个单词第一个字母大写,你可以这么做:
log(StringUtils.capitaliseAllWords("a sentenced to be capitalised"));
// A Sentenced To Be Capitalised
如果你需要计算一个字母在字符串中出现的个数,你可以使用countMatches方法:log(StringUtils.countMatches("Bethany plays with army men", "e"));
// 2
甚至还有计算两字符串之间的Levenshtein-Distance
log(StringUtils.getLevenshteinDistance("David", "Jakob"));
// 4
分解字符串
StringUtils.split(null, *, *) = null
StringUtils.split("", *, *) = []
StringUtils.split("ab de fg", null, 0) = ["ab", "cd", "ef"]
StringUtils.split("ab de fg", null, 0) = ["ab", "cd", "ef"]
StringUtils.split("ab:cd:ef", ":", 0) = ["ab", "cd", "ef"]
StringUtils.split("ab:cd:ef", ":", 1) = ["ab:cd:ef"]
StringUtils.split("ab:cd:ef", ":", 2) = ["ab", "cd:ef"]
StringUtils.split(String str,String separatorChars,int max) str为null时返回null
separatorChars为null时默认为按空格分解,max为0或负数时分解没有限制,max为1时返回整个字符串,max为分解成的个数(大于实际则无效)
去除字符串前后指定的字符
StringUtils.strip(null, *) = null
StringUtils.strip("", *) = ""
StringUtils.strip("abc", null) = "abc"
StringUtils.strip(" abc ", null) = "abc"
StringUtils.strip(" abcyx", "xyz") = " abc"
StringUtils.strip(String str,String stripChars) str为null时返回null,stripChars为null时默认为空格
创建醒目的Header(调试时用)
public String createHeader( String title ) {
int width = 30;
String stars = StringUtils.repeat( "*", width);
String centered = StringUtils.center( title, width, "*" );
String heading = StringUtils.join(new Object[]{stars, centered, stars}, "\n");
return heading;
}
调用createHeader("TEST")的输出结果:
******************************
************ TEST ************
******************************
检查字符串是否仅仅包含数字、字母或数字和字母的混合
String test1 = "ORANGE";
String test2 = "ICE9";
String test3 = "ICE CREAM";
String test4 = "820B Judson Avenue";
String test5 = "1976";
结果:
boolean t1val = StringUtils.isAlpha( test1 ); // returns true
boolean t2val = StringUtils.isAlphanumeric( test2 ); // returns true
boolean t3val = StringUtils.isAlphaSpace( test3 ); // returns true
boolean t4val = StringUtils.isAlphanumericSpace( test4 ); // returns true
boolean t5val = StringUtils.isNumeric( test5 ); // returns true
分享到:
相关推荐
`StringUtils.doc`文档应该包含了这些方法的详细说明、参数解释、示例以及返回值等信息,对于学习和使用`StringUtils`类非常有帮助。通过阅读这份文档,开发者可以更好地理解和应用这些方法,提升代码的可读性和效率...
/* 内含 common-lang3.jar commons-lang3-3.9-bin.zip commons-lang3-3.9-src.zip 使用说明.txt*/ public static String getClientIp(HttpServletRequest request) { String ip = request.getHeader("X-...
`StringUtils说明.txt`文件应包含更详细的API文档和使用示例,可以帮助开发者更好地理解和使用这些工具方法。通过阅读这个文档,你可以了解到每个方法的具体功能、参数说明以及返回值类型,从而在实际开发中更有效地...
在Java开发中,处理字符串时,常常需要进行非空判断,以确保后续操作的准确性。...在编写代码时,养成良好的注释习惯,明确说明使用某个方法的原因,将有助于团队成员更好地理解代码逻辑,从而提升整个项目的质量。
String result = StringUtils.capitalize("hello world"); System.out.println(result); // 输出 "Hello world" } } ``` #### 示例2:处理包中的多个类 如果`com.example.utils`包中有多个类(如`StringUtils`...
- **Lang**: 这个模块提供了一些通用的、增强版的Java语言工具类,如StringUtils、NumberUtils等,它们补充了Java标准库的功能,如字符串操作、数字转换等。 - **Net**: 包含了网络通信的相关类,如FTPClient、...
在"commons组件常用jar包及使用文档说明"中,我们可以找到以下一些关键知识点: 1. **Commons IO**: 这个组件提供了大量的I/O操作工具类,包括文件读写、流操作、字符编码转换、文件比较等。例如,`FileUtils` 类...
**其中 message.properties必须要有,其他的配置文件命名格式为:message_语言_国家.properties**,其中语言和国家格式可以查看 java.util.Locale 类中的说明。 3. 自定义重写 LocaleResolver 类的 resolveLocale ...
以下是对标题“31个java工具类大汇总”及描述中提及的知识点的详细说明: 1. **StringUtils**: `StringUtils`是Apache Commons Lang库中的一个核心工具类,专门用于处理字符串。它提供了大量的静态方法,例如检查...
【资源说明】 1、该资源内项目代码都是经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工...
以下是对这些方法的详细说明: 1. **基础逻辑判断**: - `if (a == b)`:这种判断方式是基于对象的引用,而不是它们的值。在这个例子中,即使`a`和`b`都是空字符串,由于它们是不同的对象实例,因此`a == b`返回`...
- 当一个字符串只能被ASCII编码器编码时,说明它不包含任何超出ASCII范围的字符。 - `canEncode()`方法会返回`true`,如果所有字符都能被当前的编码器编码;反之,如果存在不能被编码的字符,则返回`false`。 #### ...
以下是对标题和描述中提到的几个常用工具类的详细说明: 1. **DateUtils**: `java.util.Date` 和 `java.time` 包含日期和时间的操作,但DateUtils通常是Apache Commons Lang库中的一个工具类,提供更方便的日期处理...
如果一个工具类的方法修改了共享状态或依赖于外部状态,那么必须确保方法是线程安全的,或者明确说明其非线程安全以防止误解。 6. **异常处理**: 工具类通常会处理异常并返回有意义的默认值或抛出特定的异常,...
阅读文档,了解每个类和方法的详细说明,可以帮助你更好地利用这些工具类。 总结来说,Apache Commons Lang API 是Java开发者的得力助手,它提供的各种工具类覆盖了开发过程中常见的需求,提高了开发效率和代码质量...
Apache Commons Lang 提供了如`StringUtils`和`ObjectUtils`等类,它们包含了各种静态方法,可以帮助开发者快速、安全地检查对象是否为null,或者字符串是否为空。 标签中的"commons-lang.jar"是指Apache Commons ...
WordUtils RandomStringUtils StringUtils(部分实现)安装如果您在系统上设置了Go,请从命令行/终端内的GOPATH目录中输入以下内容: go get github.com/Masterminds/goutils如果您的系统上尚未安装Go,请按照的说明...
6. **StringUtils**: 这通常是指Apache Commons Lang库中的`org.apache.commons.lang3.StringUtils`,提供字符串操作的实用方法,如空判断、格式化、分割等。 7. **时间工具类**: Java 8引入了`java.time`包,包含`...
以下是对"一些java常用的工具类"的详细说明。 首先,工具类通常包含静态方法,这些方法不依赖于类的实例,可以直接调用,减少了对象创建的开销。这些类通常以“Utils”或“Helper”结尾,如Apache Commons Lang中的...
以下是一些常用工具类及其方法的详细说明: 1. **org.apache.commons.lang3.StringUtils** - `isBlank`:检查字符串是否为空,包括null和经过trim后的空格。如果字符串经过trim后是空的,返回true。 - `...