From: <pat...@us...> - 2010-08-05 18:59:14
|
Revision: 1112 http://cishell.svn.sourceforge.net/cishell/?rev=1112&view=rev Author: pataphil Date: 2010-08-05 18:59:05 +0000 (Thu, 05 Aug 2010) Log Message: ----------- Fixed StringUtilities.getAllTokens(). Modified Paths: -------------- trunk/core/org.cishell.utilities/src/org/cishell/utilities/StringUtilities.java Modified: trunk/core/org.cishell.utilities/src/org/cishell/utilities/StringUtilities.java =================================================================== --- trunk/core/org.cishell.utilities/src/org/cishell/utilities/StringUtilities.java 2010-08-05 16:20:09 UTC (rev 1111) +++ trunk/core/org.cishell.utilities/src/org/cishell/utilities/StringUtilities.java 2010-08-05 18:59:05 UTC (rev 1112) @@ -1,12 +1,16 @@ package org.cishell.utilities; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collection; import java.util.Iterator; import java.util.List; import java.util.StringTokenizer; +import java.util.regex.Pattern; public class StringUtilities { + public static Pattern NON_ALPHA_NUMERIC_CHARACTER_ESCAPE = Pattern.compile("([^a-zA-z0-9])"); + // TODO: Make this wrap implodeItems. public static String implodeStringArray(String[] stringArray, String separator) { final int stringArrayLength = stringArray.length; @@ -318,7 +322,8 @@ public static String[] getAllTokens( String originalString, String separator, boolean trim) { - String[] tokens = originalString.split(separator); + String escapedSeparator = escapeForRegularExpression(separator); + String[] tokens = originalString.split(escapedSeparator); if (trim) { String[] trimmedTokens = new String[tokens.length]; @@ -358,6 +363,10 @@ } } + public static String escapeForRegularExpression(String original) { + return NON_ALPHA_NUMERIC_CHARACTER_ESCAPE.matcher(original).replaceAll("\\\\$1"); + } + // TODO // public static String escape(String unescaped) { // return unescaped.replaceAll("\"", "\\\"" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |