FileDocCategorySizeDatePackage
StringFormat.javaAPI DocExample2370Sat Jan 27 21:34:30 GMT 2001com.darwinsys.util

StringFormat

public class StringFormat extends Format
Bare-minimum "String formatter": format a string to a given maximum length with left, centre, or right justification.

Fields Summary
public static final int
JUST_LEFT
public static final int
JUST_CENTRE
public static final int
JUST_CENTER
public static final int
JUST_RIGHT
Constant for right-justified Strings.
private int
just
Current justification
private int
maxChars
Current max length
Constructors Summary
public StringFormat(int maxChars, int just)


	     
		switch(just) {
		case JUST_LEFT:
		case JUST_CENTRE:
		case JUST_RIGHT:
			this.just = just;
			break;
		default:
			throw new IllegalArgumentException("invalid justification arg.");
		}
		if (maxChars < 1) {
			throw new IllegalArgumentException("maxChars must be positive.");
		}
		this.maxChars = maxChars;
	
Methods Summary
public java.lang.StringBufferformat(java.lang.Object obj, java.lang.StringBuffer where, java.text.FieldPosition ignore)
Format a String


		String s = (String)obj;
		String wanted = s.substring(0, Math.min(s.length(), maxChars));

		// If no space left for justification, return maxChars' worth */
		if (wanted.length() > maxChars) {
			where.append(wanted);
		}
		// Else get the spaces in the right place.
		else switch (just) {
			case JUST_RIGHT:
				pad(where, maxChars - wanted.length());
				where.append(wanted);
				break;
			case JUST_CENTRE:
				int startPos = where.length();
				pad(where, (maxChars - wanted.length())/2);
				where.append(wanted);
				pad(where, (maxChars - wanted.length())/2);
				// Adjust for "rounding error"
				pad(where, maxChars - (where.length() - startPos));
				break;
			case JUST_LEFT:
				where.append(wanted);
				pad(where, maxChars - wanted.length());
				break;
			}
		return where;
	
java.lang.Stringformat(java.lang.String s)
Convenience Routine

		return format(s, new StringBuffer(), null).toString();
	
protected final voidpad(java.lang.StringBuffer to, int howMany)

		for (int i=0; i<howMany; i++)
			to.append(' ");
	
public java.lang.ObjectparseObject(java.lang.String source, java.text.ParsePosition pos)
ParseObject is required by Format interface, but not useful here.

		return source;