/* {{{ StringList.java - a List of Strings with split() and join() methods
* :tabSize=4:indentSize=4:noTabs=false:
* :folding=explicit:collapseFolds=1:
*
* Copyright (C) 2005 Alan Ezust
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* }}} */
package org.gjt.sp.util;
//{{{ imports
import javax.annotation.Nonnull;
import java.util.ArrayList;
import java.util.Collection;
//}}}
/**
* A List<String> with some perl-like convenience functions (split/join primarily),
* and easy conversion to/from arrays.
* @since jEdit 4.3pre7
*/
public class StringList extends ArrayList<String>
{
// {{{ Constructors
public StringList()
{
}
public StringList(Object[] array)
{
addAll(array);
} // }}}
// {{{ addAll()
public void addAll(Object[] array)
{
for (Object element : array)
add(element.toString());
} // }}}
// {{{ split()
/**
* @param orig the original string
* @param delim a delimiter to use for splitting
* @return a new StringList containing the split strings.
*/
public static StringList split(String orig, Object delim)
{
if ((orig == null) || (orig.isEmpty()))
return new StringList();
return new StringList(orig.split(delim.toString()));
} // }}}
// {{{ toString()
/**
* Joins each string in the list with a newline.
* @return a joined string representation of this,
* with the newline (\n) as delimiter.
*/
@Override
public String toString()
{
return join("\n");
} // }}}
// {{{ toArray()
/** @return an array of String */
@Nonnull
@Override
public String[] toArray()
{
int siz = size();
String[] result = new String[siz];
System.arraycopy(super.toArray(), 0, result, 0, siz);
return result;
}
// }}}
// {{{ join() methods
/**
* The reverse of split - given a collection, takes each element
* and places it in a string, joined by a delimiter.
* @deprecated use {@link String#join(CharSequence, CharSequence...)} or
* {@link String#join(CharSequence, Iterable)}, thos methods are available
* since Java 8 and are faster in all situations
*/
@Deprecated
public static String join(Collection<String> c, String delim)
{
StringList sl = new StringList();
sl.addAll(c);
return sl.join(delim);
}
/**
*
* @param arr array of objects
* @param delim delimiter to separate strings
* @return a single string with each element in arr converted to a string and concatenated,
* separated by delim.
*/
public static String join(Object[] arr, String delim)
{
return new StringList(arr).join(delim);
}
/**
* Non-static version, that joins "this" StringList.
* @param delim the delimiter
* @return a joined string with delim inbetween each element
*/
public String join(String delim)
{
int s = size();
if (s < 1)
return "";
if (s == 1)
return get(0);
else
{
StringBuilder retval = new StringBuilder();
retval.append(get(0));
for (int i = 1; i < s; ++i)
retval.append(delim).append(get(i));
return retval.toString();
}
} // }}}
private static final long serialVersionUID = -6408080298368668262L;
}
¤ Dauer der Verarbeitung: 0.21 Sekunden
(vorverarbeitet)
¤
|
Haftungshinweis
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.
|