package com.ronsoft.books.nio.regex;
import java.nio.CharBuffer;
/**
* Demonstrate behavior of java.lang.CharSequence as implemented
* by String, StringBuffer and CharBuffer.
*
* Created: April, 2002
* @author Ron Hitchens (ron@ronsoft.com)
* @version $Id: CharSeq.java,v 1.1 2002/05/07 02:21:08 ron Exp $
*/
public class CharSeq
{
public static void main (String [] argv)
{
StringBuffer stringBuffer = new StringBuffer ("Hello World");
CharBuffer charBuffer = CharBuffer.allocate (20);
CharSequence charSequence = "Hello World";
// derived directly from a String
printCharSequence (charSequence);
// derived from a StringBuffer
charSequence = stringBuffer;
printCharSequence (charSequence);
// change StringBuffer
stringBuffer.setLength (0);
stringBuffer.append ("Goodbye cruel world");
// same "immutable" CharSequence yields different result
printCharSequence (charSequence);
// derive CharSequence from CharBuffer.
charSequence = charBuffer;
charBuffer.put ("xxxxxxxxxxxxxxxxxxxx");
charBuffer.clear();
charBuffer.put ("Hello World");
charBuffer.flip();
printCharSequence (charSequence);
charBuffer.mark();
charBuffer.put ("Seeya");
charBuffer.reset();
printCharSequence (charSequence);
charBuffer.clear();
printCharSequence (charSequence);
// changing underlying CharBuffer is reflected in the
// read-only CharSequnce interface.
}
private static void printCharSequence (CharSequence cs)
{
System.out.println ("length=" + cs.length()
+ ", content='" + cs.toString() + "'");
}
}
|