Added parseIntArray() and parseStringArray() for parsing arrays of ints
and strings respectively from a string representation. git-svn-id: https://samskivert.googlecode.com/svn/trunk@164 6335cc39-0255-0410-8fd6-9bcaacd3b74c
This commit is contained in:
@@ -1,8 +1,10 @@
|
|||||||
//
|
//
|
||||||
// $Id: StringUtil.java,v 1.5 2001/03/02 02:34:37 mdb Exp $
|
// $Id: StringUtil.java,v 1.6 2001/07/12 02:43:43 mdb Exp $
|
||||||
|
|
||||||
package com.samskivert.util;
|
package com.samskivert.util;
|
||||||
|
|
||||||
|
import java.util.StringTokenizer;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* String related utility functions.
|
* String related utility functions.
|
||||||
*/
|
*/
|
||||||
@@ -142,5 +144,63 @@ public class StringUtil
|
|||||||
return new String(chars);
|
return new String(chars);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parses an array of integers from it's string representation. The
|
||||||
|
* array should be represented as a bare list of numbers separated by
|
||||||
|
* commas, for example:
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* 25, 17, 21, 99
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* Any inability to parse the int array will result in the function
|
||||||
|
* returning null.
|
||||||
|
*/
|
||||||
|
public static int[] parseIntArray (String source)
|
||||||
|
{
|
||||||
|
StringTokenizer tok = new StringTokenizer(source, ",");
|
||||||
|
int[] vals = new int[tok.countTokens()];
|
||||||
|
for (int i = 0; tok.hasMoreTokens(); i++) {
|
||||||
|
try {
|
||||||
|
// trim the whitespace from the token
|
||||||
|
String token = tok.nextToken().trim();
|
||||||
|
vals[i] = Integer.parseInt(token);
|
||||||
|
} catch (NumberFormatException nfe) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return vals;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parses an array of strings from a single string. The array should
|
||||||
|
* be represented as a bare list of strings separated by commas, for
|
||||||
|
* example:
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* mary, had, a, little, lamb, and, an, escaped, comma,,
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* If a comma is desired in one of the strings, it should be escaped
|
||||||
|
* by putting two commas in a row. Any inability to parse the string
|
||||||
|
* array will result in the function returning null.
|
||||||
|
*/
|
||||||
|
public static String[] parseStringArray (String source)
|
||||||
|
{
|
||||||
|
// sort out escaped commas
|
||||||
|
source = replace(source, ",,", "%COMMA%");
|
||||||
|
// now tokenize the string
|
||||||
|
StringTokenizer tok = new StringTokenizer(source, ",");
|
||||||
|
String[] vals = new String[tok.countTokens()];
|
||||||
|
for (int i = 0; tok.hasMoreTokens(); i++) {
|
||||||
|
// trim the whitespace from the token
|
||||||
|
String token = tok.nextToken().trim();
|
||||||
|
// undo the comma escaping
|
||||||
|
token = replace(token, "%COMMA%", ",");
|
||||||
|
vals[i] = token;
|
||||||
|
}
|
||||||
|
return vals;
|
||||||
|
}
|
||||||
|
|
||||||
private final static String XLATE = "0123456789abcdef";
|
private final static String XLATE = "0123456789abcdef";
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user