看commons包时的相关练习,可以用这个包提高编码效率。
package org.raistlin.test.apache;
import java.io.file;
import java.io.fileinputstream;
import java.io.filenotfoundexception;
import java.io.fileoutputstream;
import java.io.ioexception;
import java.util.calendar;
import java.util.date;
import java.util.iterator;
import org.apache.commons.lang.arrayutils;
import org.apache.commons.lang.charset;
import org.apache.commons.lang.charsetutils;
import org.apache.commons.lang.classutils;
import org.apache.commons.lang.objectutils;
import org.apache.commons.lang.randomstringutils;
import org.apache.commons.lang.serializationutils;
import org.apache.commons.lang.stringescapeutils;
import org.apache.commons.lang.stringutils;
import org.apache.commons.lang.systemutils;
import org.apache.commons.lang.builder.equalsbuilder;
import org.apache.commons.lang.builder.hashcodebuilder;
import org.apache.commons.lang.builder.tostringbuilder;
import org.apache.commons.lang.builder.tostringstyle;
import org.apache.commons.lang.math.numberutils;
import org.apache.commons.lang.time.dateformatutils;
import org.apache.commons.lang.time.dateutils;
import org.apache.commons.lang.time.stopwatch;
public class langdemo
{
public void charsetdemo()
{
system.out.println("**charsetdemo**");
charset charset = charset.getinstance("aeiou");
string demostr = "the quick brown fox jumps over the lazy dog.";
int count = 0;
for (int i = 0, len = demostr.length(); i < len; i++)
{
if (charset.contains(demostr.charat(i)))
{
count++;
}
}
system.out.println("count: " + count);
}
public void charsetutilsdemo()
{
system.out.println("**charsetutilsdemo**");
system.out.println("计算字符串中包含某字符数.");
system.out.println(charsetutils.count(
"the quick brown fox jumps over the lazy dog.", "aeiou"));
system.out.println("删除字符串中某字符.");
system.out.println(charsetutils.delete(
"the quick brown fox jumps over the lazy dog.", "aeiou"));
system.out.println("保留字符串中某字符.");
system.out.println(charsetutils.keep(
"the quick brown fox jumps over the lazy dog.", "aeiou"));
system.out.println("合并重复的字符.");
system.out.println(charsetutils.squeeze("a bbbbbb c dd", "b d"));
}
public void objectutilsdemo()
{
system.out.println("**objectutilsdemo**");
system.out.println("object为null时,默认打印某字符.");
object obj = null;
system.out.println(objectutils.defaultifnull(obj, "空"));
system.out.println("验证两个引用是否指向的object是否相等,取决于object的equals()方法.");
object a = new object();
object b = a;
object c = new object();
system.out.println(objectutils.equals(a, b));
system.out.println(objectutils.equals(a, c));
system.out.println("用父类object的tostring()方法返回对象信息.");
date date = new date();
system.out.println(objectutils.identitytostring(date));
system.out.println(date);
system.out.println("返回类本身的tostring()方法结果,对象为null时,返回0长度字符串.");
system.out.println(objectutils.tostring(date));
system.out.println(objectutils.tostring(null));
system.out.println(date);
}
public void serializationutilsdemo()
{
system.out.println("*serializationutils**");
date date = new date();
byte[] bytes = serializationutils.serialize(date);
system.out.println(arrayutils.tostring(bytes));
system.out.println(date);
date redate = (date) serializationutils.deserialize(bytes);
system.out.println(redate);
system.out.println(objectutils.equals(date, redate));
system.out.println(date == redate);
fileoutputstream fos = null;
fileinputstream fis = null;
try
{
fos = new fileoutputstream(new file("d:/test.txt"));
fis = new fileinputstream(new file("d:/test.txt"));
serializationutils.serialize(date, fos);
date redate2 = (date) serializationutils.deserialize(fis);
system.out.println(date.equals(redate2));
}
catch (filenotfoundexception e)
{
e.printstacktrace();
}
finally
{
try
{
fos.close();
fis.close();
}
catch (ioexception e)
{
e.printstacktrace();
}
}
}
public void randomstringutilsdemo()
{
system.out.println("**randomstringutilsdemo**");
system.out.println("生成指定长度的随机字符串,好像没什么用.");
system.out.println(randomstringutils.random(500));
system.out.println("在指定字符串中生成长度为n的随机字符串.");
system.out.println(randomstringutils.random(5, "abcdefghijk"));
system.out.println("指定从字符或数字中生成随机字符串.");
system.out.println(randomstringutils.random(5, true, false));
system.out.println(randomstringutils.random(5, false, true));
}
public void stringutilsdemo()
{
system.out.println("**stringutilsdemo**");
system.out.println("将字符串重复n次,将文字按某宽度居中,将字符串数组用某字符串连接.");
string[] header = new string[3];
header[0] = stringutils.repeat("*", 50);
header[1] = stringutils.center(" stringutilsdemo ", 50, "^o^");
header[2] = header[0];
string head = stringutils.join(header, "/n");
system.out.println(head);
system.out.println("缩短到某长度,用...结尾.");
system.out.println(stringutils.abbreviate(
"the quick brown fox jumps over the lazy dog.", 10));
system.out.println(stringutils.abbreviate(
"the quick brown fox jumps over the lazy dog.", 15, 10));
system.out.println("返回两字符串不同处索引号.");
system.out.println(stringutils.indexofdifference("aaabc", "aaacc"));
system.out.println("返回两字符串不同处开始至结束.");
system.out.println(stringutils.difference("aaabcde", "aaaccde"));
system.out.println("截去字符串为以指定字符串结尾的部分.");
system.out.println(stringutils.chomp("aaabcde", "de"));
system.out.println("检查一字符串是否为另一字符串的子集.");
system.out.println(stringutils.containsonly("aad", "aadd"));
system.out.println("检查一字符串是否不是另一字符串的子集.");
system.out.println(stringutils.containsnone("defg", "aadd"));
system.out.println("检查一字符串是否包含另一字符串.");
system.out.println(stringutils.contains("defg", "ef"));
system.out.println(stringutils.containsonly("ef", "defg"));
system.out.println("返回可以处理null的tostring().");
system.out.println(stringutils.defaultstring("aaaa"));
system.out.println("?" + stringutils.defaultstring(null) + "!");
system.out.println("去除字符中的空格.");
system.out.println(stringutils.deletewhitespace("aa bb cc"));
system.out.println("判断是否是某类字符.");
system.out.println(stringutils.isalpha("ab"));
system.out.println(stringutils.isalphanumeric("12"));
system.out.println(stringutils.isblank(""));
system.out.println(stringutils.isnumeric("123"));
}
public void systemutilsdemo()
{
system.out.println(genheader("systemutilsdemo"));
system.out.println("获得系统文件分隔符.");
system.out.println(systemutils.file_separator);
system.out.println("获得源文件编码.");
system.out.println(systemutils.file_encoding);
system.out.println("获得ext目录.");
system.out.println(systemutils.java_ext_dirs);
system.out.println("获得java版本.");
system.out.println(systemutils.java_vm_version);
system.out.println("获得java厂商.");
system.out.println(systemutils.java_vendor);
}
public void classutilsdemo()
{
system.out.println(genheader("classutilsdemo"));
system.out.println("获取类实现的所有接口.");
system.out.println(classutils.getallinterfaces(date.class));
system.out.println("获取类所有父类.");
system.out.println(classutils.getallsuperclasses(date.class));
system.out.println("获取简单类名.");
system.out.println(classutils.getshortclassname(date.class));
system.out.println("获取包名.");
system.out.println(classutils.getpackagename(date.class));
system.out.println("判断是否可以转型.");
system.out.println(classutils.isassignable(date.class, object.class));
system.out.println(classutils.isassignable(object.class, date.class));
}
public void stringescapeutilsdemo()
{
system.out.println(genheader("stringecsapeutils"));
system.out.println("转换特殊字符.");
system.out.println("html:" + stringescapeutils.escapehtml("
"));
system.out.println("html:"
+ stringescapeutils.unescapehtml("<p>"));
}
private final class builddemo
{
string name;
int age;
public builddemo(string name, int age)
{
this.name = name;
this.age = age;
}
public string tostring()
{
tostringbuilder tsb = new tostringbuilder(this,
tostringstyle.multi_line_style);
tsb.append("name", name);
tsb.append("age", age);
return tsb.tostring();
}
public int hashcode()
{
hashcodebuilder hcb = new hashcodebuilder();
hcb.append(name);
hcb.append(age);
return hcb.hashcode();
}
public boolean equals(object obj)
{
if (!(obj instanceof builddemo))
{
return false;
}
builddemo bd = (builddemo) obj;
equalsbuilder eb = new equalsbuilder();
eb.append(name, bd.name);
eb.append(age, bd.age);
return eb.isequals();
}
}
public void builderdemo()
{
system.out.println(genheader("builderdemo"));
builddemo obj1 = new builddemo("a", 1);
builddemo obj2 = new builddemo("b", 2);
builddemo obj3 = new builddemo("a", 1);
system.out.println("tostring()");
system.out.println(obj1);
system.out.println(obj2);
system.out.println(obj3);
system.out.println("hashcode()");
system.out.println(obj1.hashcode());
system.out.println(obj2.hashcode());
system.out.println(obj3.hashcode());
system.out.println("equals()");
system.out.println(obj1.equals(obj2));
system.out.println(obj1.equals(obj3));
}
public void numberutils()
{
system.out.println(genheader("numberutils"));
system.out.println("字符串转为数字(不知道有什么用).");
system.out.println(numberutils.stringtoint("ba", 33));
system.out.println("从数组中选出最大值.");
system.out.println(numberutils.max(new int[] { 1, 2, 3, 4 }));
system.out.println("判断字符串是否全是整数.");
system.out.println(numberutils.isdigits("123.1"));
system.out.println("判断字符串是否是有效数字.");
system.out.println(numberutils.isnumber("0123.1"));
}
public void dateformatutilsdemo()
{
system.out.println(genheader("dateformatutilsdemo"));
system.out.println("格式化日期输出.");
system.out.println(dateformatutils.format(system.currenttimemillis(),
"yyyy-mm-dd hh:mm:ss"));
system.out.println("秒表.");
stopwatch sw = new stopwatch();
sw.start();
for (iterator iterator = dateutils.iterator(new date(),
dateutils.range_week_center); iterator.hasnext();)
{
calendar cal = (calendar) iterator.next();
system.out.println(dateformatutils.format(cal.gettime(),
"yy-mm-dd hh:mm"));
}
sw.stop();
system.out.println("秒表计时:" + sw.gettime());
}
private string genheader(string head)
{
string[] header = new string[3];
header[0] = stringutils.repeat("*", 50);
header[1] = stringutils.center(" " + head + " ", 50, "^o^");
header[2] = header[0];
return stringutils.join(header, "/n");
}
/**
* @param args
*/
public static void main(string[] args)
{
langdemo langdemo = new langdemo();
langdemo.charsetdemo();
langdemo.charsetutilsdemo();
langdemo.objectutilsdemo();
langdemo.serializationutilsdemo();
langdemo.randomstringutilsdemo();
langdemo.stringutilsdemo();
langdemo.systemutilsdemo();
langdemo.classutilsdemo();
langdemo.stringescapeutilsdemo();
langdemo.builderdemo();
langdemo.numberutils();
langdemo.dateformatutilsdemo();
}
}
闽公网安备 35060202000074号