//package gen.eaglestone.util; import java.util.*; /***************************************************************** * * PerlList roughly imitates the perl list type, providing * the following methods: * * push( Object scalar ) * push( Object[] array ) * push( PerlList list ) * * Object pop() * * unshift( Object scalar ) * unshift( Object[] array ) * unshift( PerlList list ) * * Object shift() * * # PerlList split( String delims, String scalar ) * * String join( String joiner ) * # String join( String joiner, PerlList[] lists ) * * Object $( int index ) *****************************************************************/
public class PerlList extends Vector { /************************************************************* * * constructors * *************************************************************/ public PerlList() { super(); } public PerlList( int cap ) { super( cap ); } /************************************************************* * * push() and pop() * *************************************************************/ public void push( PerlList list ) { Enumeration elems = list.elements(); while( elems.hasMoreElements() ) addElement( elems.nextElement() ); } public void push( Object[] elems ) { for( int i=0; i<elems.length; i++ ) addElement( elems[i] ); } public void push( Object scalar ) { addElement( scalar ); } public Object pop() { Object scalar = lastElement(); removeElement( scalar ); return scalar; } /************************************************************* * * shift() and unshift() * *************************************************************/ public Object shift() { Object scalar = firstElement(); removeElement( scalar ); return scalar; } public void unshift( Object scalar ) { insertElementAt( scalar, 0 ); } public void unshift( Object[] elems ) { for( int i=0; i<elems.length; i++ ) insertElementAt( elems[i], 0 ); } public void unshift( PerlList list ) { Enumeration elems = list.elements(); while( elems.hasMoreElements() ) insertElementAt( elems.nextElement(), 0 ); } /************************************************************* * * split() and join() * *************************************************************/ public static PerlList split( String delims, String scalar ) { PerlList l = new PerlList(); StringTokenizer tok = new StringTokenizer( scalar, delims ); while( tok.hasMoreTokens() ) { l.push( tok.nextToken() ); } return l; } public String join( String joiner ) { StringBuffer buf = new StringBuffer(); Enumeration elems = elements(); if( elems.hasMoreElements() ) { buf.append( (String) elems.nextElement() ); } while( elems.hasMoreElements() ) { buf.append( joiner ); buf.append( (String) elems.nextElement() ); } return buf.toString(); } public static String join( String joiner, PerlList[] list ) { PerlList nu = new PerlList(); for( int i=0; i<list.length; i++ ) nu.push( list[i] ); return nu.join( joiner ); } /************************************************************* * * default access * *************************************************************/ public Object $( int index ) { return (String) elementAt( index ); } /************************************************************* * * test * *************************************************************/ public static void main( String args[] ) { String a = "abcd 123-4 b ag ag ag x 567"; PerlList pl = PerlList.split( " ", a ); System.out.println( pl.join( "\n" ) ); System.out.println( pl.$(0) ); } }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
(Ovid) Re: Perl list emulation in Java...
by Ovid (Cardinal) on Jan 09, 2002 at 03:02 UTC | |
|
(RhetTbull) Re: Perl list emulation in Java...
by RhetTbull (Curate) on Jan 09, 2002 at 06:51 UTC | |
|
Re: Perl list emulation in Java...
by mdog (Pilgrim) on Jan 09, 2002 at 23:23 UTC |