看例子练apache commons之lang篇

本文通过多个示例展示了 Apache Commons Lang 库的强大功能,包括字符集操作、对象比较、序列化、随机字符串生成、字符串处理等。适用于希望提高 Java 编程效率的开发者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

看commons包时的相关练习,可以用这个包提高编码效率。

  1. packagecn.org.c4c.test.apache;
  2. importjava.io.File;
  3. importjava.io.FileInputStream;
  4. importjava.io.FileNotFoundException;
  5. importjava.io.FileOutputStream;
  6. importjava.io.IOException;
  7. importjava.util.Calendar;
  8. importjava.util.Date;
  9. importjava.util.Iterator;
  10. importorg.apache.commons.lang.ArrayUtils;
  11. importorg.apache.commons.lang.CharSet;
  12. importorg.apache.commons.lang.CharSetUtils;
  13. importorg.apache.commons.lang.ClassUtils;
  14. importorg.apache.commons.lang.ObjectUtils;
  15. importorg.apache.commons.lang.RandomStringUtils;
  16. importorg.apache.commons.lang.SerializationUtils;
  17. importorg.apache.commons.lang.StringEscapeUtils;
  18. importorg.apache.commons.lang.StringUtils;
  19. importorg.apache.commons.lang.SystemUtils;
  20. importorg.apache.commons.lang.builder.EqualsBuilder;
  21. importorg.apache.commons.lang.builder.HashCodeBuilder;
  22. importorg.apache.commons.lang.builder.ToStringBuilder;
  23. importorg.apache.commons.lang.builder.ToStringStyle;
  24. importorg.apache.commons.lang.math.NumberUtils;
  25. importorg.apache.commons.lang.time.DateFormatUtils;
  26. importorg.apache.commons.lang.time.DateUtils;
  27. importorg.apache.commons.lang.time.StopWatch;
  28. publicclassLangDemo{
  29. publicvoidcharSetDemo(){
  30. System.out.println("**CharSetDemo**");
  31. CharSetcharSet=CharSet.getInstance("aeiou");
  32. StringdemoStr="Thequickbrownfoxjumpsoverthelazydog.";
  33. intcount=0;
  34. for(inti=0,len=demoStr.length();i<len;i++){
  35. if(charSet.contains(demoStr.charAt(i))){
  36. count++;
  37. }
  38. }
  39. System.out.println("count:"+count);
  40. }
  41. publicvoidcharSetUtilsDemo(){
  42. System.out.println("**CharSetUtilsDemo**");
  43. System.out.println("计算字符串中包含某字符数.");
  44. System.out.println(CharSetUtils.count(
  45. "Thequickbrownfoxjumpsoverthelazydog.","aeiou"));
  46. System.out.println("删除字符串中某字符.");
  47. System.out.println(CharSetUtils.delete(
  48. "Thequickbrownfoxjumpsoverthelazydog.","aeiou"));
  49. System.out.println("保留字符串中某字符.");
  50. System.out.println(CharSetUtils.keep(
  51. "Thequickbrownfoxjumpsoverthelazydog.","aeiou"));
  52. System.out.println("合并重复的字符.");
  53. System.out.println(CharSetUtils.squeeze("abbbbbbcdd","bd"));
  54. }
  55. publicvoidobjectUtilsDemo(){
  56. System.out.println("**ObjectUtilsDemo**");
  57. System.out.println("Object为null时,默认打印某字符.");
  58. Objectobj=null;
  59. System.out.println(ObjectUtils.defaultIfNull(obj,"空"));
  60. System.out.println("验证两个引用是否指向的Object是否相等,取决于Object的equals()方法.");
  61. Objecta=newObject();
  62. Objectb=a;
  63. Objectc=newObject();
  64. System.out.println(ObjectUtils.equals(a,b));
  65. System.out.println(ObjectUtils.equals(a,c));
  66. System.out.println("用父类Object的toString()方法返回对象信息.");
  67. Datedate=newDate();
  68. System.out.println(ObjectUtils.identityToString(date));
  69. System.out.println(date);
  70. System.out.println("返回类本身的toString()方法结果,对象为null时,返回0长度字符串.");
  71. System.out.println(ObjectUtils.toString(date));
  72. System.out.println(ObjectUtils.toString(null));
  73. System.out.println(date);
  74. }
  75. publicvoidserializationUtilsDemo(){
  76. System.out.println("*SerializationUtils**");
  77. Datedate=newDate();
  78. byte[]bytes=SerializationUtils.serialize(date);
  79. System.out.println(ArrayUtils.toString(bytes));
  80. System.out.println(date);
  81. DatereDate=(Date)SerializationUtils.deserialize(bytes);
  82. System.out.println(reDate);
  83. System.out.println(ObjectUtils.equals(date,reDate));
  84. System.out.println(date==reDate);
  85. FileOutputStreamfos=null;
  86. FileInputStreamfis=null;
  87. try{
  88. fos=newFileOutputStream(newFile("d:/test.txt"));
  89. fis=newFileInputStream(newFile("d:/test.txt"));
  90. SerializationUtils.serialize(date,fos);
  91. DatereDate2=(Date)SerializationUtils.deserialize(fis);
  92. System.out.println(date.equals(reDate2));
  93. }catch(FileNotFoundExceptione){
  94. e.printStackTrace();
  95. }finally{
  96. try{
  97. fos.close();
  98. fis.close();
  99. }catch(IOExceptione){
  100. e.printStackTrace();
  101. }
  102. }
  103. }
  104. publicvoidrandomStringUtilsDemo(){
  105. System.out.println("**RandomStringUtilsDemo**");
  106. System.out.println("生成指定长度的随机字符串,好像没什么用.");
  107. System.out.println(RandomStringUtils.random(500));
  108. System.out.println("在指定字符串中生成长度为n的随机字符串.");
  109. System.out.println(RandomStringUtils.random(5,"abcdefghijk"));
  110. System.out.println("指定从字符或数字中生成随机字符串.");
  111. System.out.println(RandomStringUtils.random(5,true,false));
  112. System.out.println(RandomStringUtils.random(5,false,true));
  113. }
  114. publicvoidstringUtilsDemo(){
  115. System.out.println("**StringUtilsDemo**");
  116. System.out.println("将字符串重复n次,将文字按某宽度居中,将字符串数组用某字符串连接.");
  117. String[]header=newString[3];
  118. header[0]=StringUtils.repeat("*",50);
  119. header[1]=StringUtils.center("StringUtilsDemo",50,"^O^");
  120. header[2]=header[0];
  121. Stringhead=StringUtils.join(header,"\n");
  122. System.out.println(head);
  123. System.out.println("缩短到某长度,用...结尾.");
  124. System.out.println(StringUtils.abbreviate(
  125. "Thequickbrownfoxjumpsoverthelazydog.",10));
  126. System.out.println(StringUtils.abbreviate(
  127. "Thequickbrownfoxjumpsoverthelazydog.",15,10));
  128. System.out.println("返回两字符串不同处索引号.");
  129. System.out.println(StringUtils.indexOfDifference("aaabc","aaacc"));
  130. System.out.println("返回两字符串不同处开始至结束.");
  131. System.out.println(StringUtils.difference("aaabcde","aaaccde"));
  132. System.out.println("截去字符串为以指定字符串结尾的部分.");
  133. System.out.println(StringUtils.chomp("aaabcde","de"));
  134. System.out.println("检查一字符串是否为另一字符串的子集.");
  135. System.out.println(StringUtils.containsOnly("aad","aadd"));
  136. System.out.println("检查一字符串是否不是另一字符串的子集.");
  137. System.out.println(StringUtils.containsNone("defg","aadd"));
  138. System.out.println("检查一字符串是否包含另一字符串.");
  139. System.out.println(StringUtils.contains("defg","ef"));
  140. System.out.println(StringUtils.containsOnly("ef","defg"));
  141. System.out.println("返回可以处理null的toString().");
  142. System.out.println(StringUtils.defaultString("aaaa"));
  143. System.out.println("?"+StringUtils.defaultString(null)+"!");
  144. System.out.println("去除字符中的空格.");
  145. System.out.println(StringUtils.deleteWhitespace("aabbcc"));
  146. System.out.println("判断是否是某类字符.");
  147. System.out.println(StringUtils.isAlpha("ab"));
  148. System.out.println(StringUtils.isAlphanumeric("12"));
  149. System.out.println(StringUtils.isBlank(""));
  150. System.out.println(StringUtils.isNumeric("123"));
  151. }
  152. publicvoidsystemUtilsDemo(){
  153. System.out.println(genHeader("SystemUtilsDemo"));
  154. System.out.println("获得系统文件分隔符.");
  155. System.out.println(SystemUtils.FILE_SEPARATOR);
  156. System.out.println("获得源文件编码.");
  157. System.out.println(SystemUtils.FILE_ENCODING);
  158. System.out.println("获得ext目录.");
  159. System.out.println(SystemUtils.JAVA_EXT_DIRS);
  160. System.out.println("获得java版本.");
  161. System.out.println(SystemUtils.JAVA_VM_VERSION);
  162. System.out.println("获得java厂商.");
  163. System.out.println(SystemUtils.JAVA_VENDOR);
  164. }
  165. publicvoidclassUtilsDemo(){
  166. System.out.println(genHeader("ClassUtilsDemo"));
  167. System.out.println("获取类实现的所有接口.");
  168. System.out.println(ClassUtils.getAllInterfaces(Date.class));
  169. System.out.println("获取类所有父类.");
  170. System.out.println(ClassUtils.getAllSuperclasses(Date.class));
  171. System.out.println("获取简单类名.");
  172. System.out.println(ClassUtils.getShortClassName(Date.class));
  173. System.out.println("获取包名.");
  174. System.out.println(ClassUtils.getPackageName(Date.class));
  175. System.out.println("判断是否可以转型.");
  176. System.out.println(ClassUtils.isAssignable(Date.class,Object.class));
  177. System.out.println(ClassUtils.isAssignable(Object.class,Date.class));
  178. }
  179. publicvoidstringEscapeUtilsDemo(){
  180. System.out.println(genHeader("StringEcsapeUtils"));
  181. System.out.println("转换特殊字符.");
  182. System.out.println("html:"+StringEscapeUtils.escapeHtml(""));
  183. System.out.println("html:"+StringEscapeUtils.unescapeHtml("<p>"));
  184. }
  185. privatefinalclassBuildDemo{
  186. Stringname;
  187. intage;
  188. publicBuildDemo(Stringname,intage){
  189. this.name=name;
  190. this.age=age;
  191. }
  192. publicStringtoString(){
  193. ToStringBuildertsb=newToStringBuilder(this,
  194. ToStringStyle.MULTI_LINE_STYLE);
  195. tsb.append("Name",name);
  196. tsb.append("Age",age);
  197. returntsb.toString();
  198. }
  199. publicinthashCode(){
  200. HashCodeBuilderhcb=newHashCodeBuilder();
  201. hcb.append(name);
  202. hcb.append(age);
  203. returnhcb.hashCode();
  204. }
  205. publicbooleanequals(Objectobj){
  206. if(!(objinstanceofBuildDemo)){
  207. returnfalse;
  208. }
  209. BuildDemobd=(BuildDemo)obj;
  210. EqualsBuildereb=newEqualsBuilder();
  211. eb.append(name,bd.name);
  212. eb.append(age,bd.age);
  213. returneb.isEquals();
  214. }
  215. }
  216. publicvoidbuilderDemo(){
  217. System.out.println(genHeader("BuilderDemo"));
  218. BuildDemoobj1=newBuildDemo("a",1);
  219. BuildDemoobj2=newBuildDemo("b",2);
  220. BuildDemoobj3=newBuildDemo("a",1);
  221. System.out.println("toString()");
  222. System.out.println(obj1);
  223. System.out.println(obj2);
  224. System.out.println(obj3);
  225. System.out.println("hashCode()");
  226. System.out.println(obj1.hashCode());
  227. System.out.println(obj2.hashCode());
  228. System.out.println(obj3.hashCode());
  229. System.out.println("equals()");
  230. System.out.println(obj1.equals(obj2));
  231. System.out.println(obj1.equals(obj3));
  232. }
  233. publicvoidnumberUtils(){
  234. System.out.println(genHeader("NumberUtils"));
  235. System.out.println("字符串转为数字(不知道有什么用).");
  236. System.out.println(NumberUtils.stringToInt("ba",33));
  237. System.out.println("从数组中选出最大值.");
  238. System.out.println(NumberUtils.max(newint[]{1,2,3,4}));
  239. System.out.println("判断字符串是否全是整数.");
  240. System.out.println(NumberUtils.isDigits("123.1"));
  241. System.out.println("判断字符串是否是有效数字.");
  242. System.out.println(NumberUtils.isNumber("0123.1"));
  243. }
  244. publicvoiddateFormatUtilsDemo(){
  245. System.out.println(genHeader("DateFormatUtilsDemo"));
  246. System.out.println("格式化日期输出.");
  247. System.out.println(DateFormatUtils.format(System.currentTimeMillis(),
  248. "yyyy-MM-ddHH:mm:ss"));
  249. System.out.println("秒表.");
  250. StopWatchsw=newStopWatch();
  251. sw.start();
  252. for(Iteratoriterator=DateUtils.iterator(newDate(),
  253. DateUtils.RANGE_WEEK_CENTER);iterator.hasNext();){
  254. Calendarcal=(Calendar)iterator.next();
  255. System.out.println(DateFormatUtils.format(cal.getTime(),
  256. "yy-MM-ddHH:mm"));
  257. }
  258. sw.stop();
  259. System.out.println("秒表计时:"+sw.getTime());
  260. }
  261. privateStringgenHeader(Stringhead){
  262. String[]header=newString[3];
  263. header[0]=StringUtils.repeat("*",50);
  264. header[1]=StringUtils.center(""+head+"",50,"^O^");
  265. header[2]=header[0];
  266. returnStringUtils.join(header,"\n");
  267. }
  268. /**
  269. *@paramargs
  270. */
  271. publicstaticvoidmain(String[]args){
  272. LangDemolangDemo=newLangDemo();
  273. langDemo.charSetDemo();
  274. langDemo.charSetUtilsDemo();
  275. langDemo.objectUtilsDemo();
  276. langDemo.serializationUtilsDemo();
  277. langDemo.randomStringUtilsDemo();
  278. langDemo.stringUtilsDemo();
  279. langDemo.systemUtilsDemo();
  280. langDemo.classUtilsDemo();
  281. langDemo.stringEscapeUtilsDemo();
  282. langDemo.builderDemo();
  283. langDemo.numberUtils();
  284. langDemo.dateFormatUtilsDemo();
  285. }
  286. }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值