全部展开
公共语言- 2.5.jar
名字大概是这个。 具体版本是62616964757 a 686964616 Fe 58685 e 5a EB 931336563939不是2.5。 你必须看看工程框架和JDK的版本,然后试一下才能知道。
Java使用逗号分隔字符串“a、b、c、”,结果是长度为5的数组。
['a '、'、'、' b '、' c '、' ]
大多数情况下,我不想要那些空字符串,所以需要在循环中逐一确定字符串是否为空。 StringUtils.split方法有助于以这种方式分割字符串。
很多开发人员抱怨Java没有提供join方法,StringUtils.join解决了这个问题。
如何判断用户输入是否为空? 经过完整的验证后,应该如下所示。
if (输入!=null input.trim ().length 0) { . }
StringUtils.isBlank方法可以确定正确处理空值和所有空间。
StringUtils类还有许多其他实用的方法,可以处理日常编程中的大部分字符串处理。 commons-lang还提供了StringEscapeUtils类,有助于防止SQL injection,并成功输出用户在HTML中输入的尖括号等。
虽然我没有仔细看过源代码,但是作为一个共同的方法,公共语言应该对性能的考虑很周到。 这很放心。
以下是两个示例,说明了阵列实用程序和字符串实用程序的常用用法。
ArrayUtils
数组是我们常用的数据结构,但由于Java本身没有提供足够的API支持,很多操作实际上相当繁琐,在实际编码中甚至不惜使用Collections API。 Collection当然可以轻松解决我们的问题,但必须牺牲性能吗? ArrayUtils帮助我们解决了大部分处理类似情况的问题。 请看一个例子:
package Sean.study.Jakarta.com mons.lang;
importjava.util.Map;
importorg.Apache.com mons.lang.array utils;
publicclassArrayUtilsUsage {
publicstaticvoidmain (字符串[ ] args ) {
//数据设置
int [ ] intarray1={ 2,4,8,16 };
int [ ] [ ] intarray2={ 1,2 }、{ 2,4 }、{ 3,8 }、{ 4,16 };
Object[][] notAMap={
{'A ',新双精度(100 ) },
{'B ',newdouble(80 ) },
{'C ',newdouble(60 ) },
{'D ',newdouble(40 ) },
{'E ',newdouble(20 ) }
(;
//打印阵列
system.out.println (intarray 1: ) array utils.tostring (intarray1);
system.out.println (intarray 2: ) array utils.tostring (intarray2);
system.out.println (notamap : ) arrayutils.tostring ) nota map );
//发现项目
system.out.println (' intarray1contains '8'?
array utils.contains (intarray 1,8 );
system.out.println (' intarray1index of '8'?
array utils.index of (intarray 1,8 );
system.out.println (' intarray1lastindexof '8'?
array utils.lastindexof (intarray 1,8 );
//克隆和恢复
int [ ] intarray3=array utils.clone (intarray1);
system.out.println (intarray : ) array utils.tostring (intarray3);
arrayutils.reverse(Intarray3;
Sys
tem.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的情况处理很得体),到分割子串,到生成格式化的字符串,使用都很简洁,也很直截了当。