jakarta commons provides a library to do common tasks in java e.g.: import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.WordUtils; String test = "This is a test of the abbreviation." String test2 = "Test" System.out.println( StringUtils.abbreviate( test, 10 ) ); System.out.println( StringUtils.abbreviate( test2, 10 ) ); oooh! cool header: public String createHeader( String title ) { int width = 30; // Construct heading using StringUtils: repeat( ), center( ), and join( ) String stars = StringUtils.repeat( "*", width); String centered = StringUtils.center( title, width, "*" ); String heading = StringUtils.join(new Object[]{stars, centered, stars}, "\n"); return heading; } Here's the output of createHeader("TEST"): ****************************** ************ TEST ************ ****************************** i like the text manipulations the best: ------------------------------------- reverse sentence: public Sentence reverseSentence(String sentence) { String reversed = StringUtils.chomp( sentence, "." ); reversed = StringUtils.reverseDelimited( reversed, ' ' ); reversed = reversed + "."; return reversed; } .... String sentence = "I am Susan." String reversed = reverseSentence( sentence ) ); System.out.println( sentence ); soundex - generated code based on sound of word (lie and lye would have same code.) http://www.nist.gov/dads/HTML/soundex.html beans (as i understand) are just a java name for an object? person bean: public class Person { private String name; private Integer age; private Job job; public String getName( ) { return name; } public void setName(String name) { this.name = name; } public Integer getAge( ) { return age; } public void setAge(Integer age) { this.age = age; } public Job getJob( ) { return job; } public void setJob(Job job) { this.job = job; } } ------------------------------------------------------- then using the library: import org.apache.commons.beanutils.PropertyUtils; Person person = new Person( ); person.setName( "Alex" ); String name = (String) PropertyUtils.getSimpleProperty( person, "name" ); System.out.println( name ); ------------------------------------------------------- "Comparator encapsulates logic to compare two objects, and Iterator encapsulates logic used to iterate over a collection of objects. " comparator chains for sorting:" ComparatorChain comparatorChain = new ComparatorChain( ); comparatorChain.addComparator( new BeanComparator( "lastName" ) ); comparatorChain.addComparator( new BeanComparator( "firstName" ) ); comparatorChain.addComparator( new BeanComparator( "age" ), true ); " digester turns xml elements into objects touching a file changes its timestamp