You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by pe...@apache.org on 2010/11/29 19:16:18 UTC

svn commit: r1040213 - /wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/string/Strings.java

Author: pete
Date: Mon Nov 29 18:16:18 2010
New Revision: 1040213

URL: http://svn.apache.org/viewvc?rev=1040213&view=rev
Log:
minor improvements on wicket.util.string.Strings

Modified:
    wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/string/Strings.java

Modified: wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/string/Strings.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/string/Strings.java?rev=1040213&r1=1040212&r2=1040213&view=diff
==============================================================================
--- wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/string/Strings.java (original)
+++ wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/string/Strings.java Mon Nov 29 18:16:18 2010
@@ -55,10 +55,10 @@ public final class Strings
 	public static final String LINE_SEPARATOR;
 
 	/** A table of hex digits */
-	private static final char[] hexDigit = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A',
-			'B', 'C', 'D', 'E', 'F' };
+	private static final char[] HEX_DIGIT =
+		{ '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
 
-	private static final Pattern htmlNumber = Pattern.compile("\\&\\#\\d+\\;");
+	private static final Pattern HTML_NUMBER_REGEX = Pattern.compile("&#\\d+;");
 
 	static
 	{
@@ -72,6 +72,13 @@ public final class Strings
 	}
 
 	/**
+	 * Private constructor prevents construction.
+	 */
+	private Strings()
+	{
+	}
+
+	/**
 	 * Returns everything after the first occurrence of the given character in s.
 	 * 
 	 * @param s
@@ -356,7 +363,7 @@ public final class Strings
 							{
 								// Not 7 Bit use the unicode system
 								buffer.append("&#");
-								buffer.append(new Integer(ci).toString());
+								buffer.append(Integer.toString(ci));
 								buffer.append(';');
 							}
 						}
@@ -416,9 +423,8 @@ public final class Strings
 		int off = 0;
 		char[] in = escapedUnicodeString.toCharArray();
 		int len = in.length;
-		char[] convtBuf = new char[len];
+		char[] out = new char[len];
 		char aChar;
-		char[] out = convtBuf;
 		int outLen = 0;
 		int end = off + len;
 
@@ -787,7 +793,7 @@ public final class Strings
 		{
 			return null;
 		}
-		Matcher matcher = htmlNumber.matcher(str);
+		Matcher matcher = HTML_NUMBER_REGEX.matcher(str);
 		while (matcher.find())
 		{
 			int pos = matcher.start();
@@ -795,7 +801,7 @@ public final class Strings
 			int number = Integer.parseInt(str.substring(pos + 2, end - 1));
 			char ch = (char)number;
 			str = str.substring(0, pos) + ch + str.substring(end);
-			matcher = htmlNumber.matcher(str);
+			matcher = HTML_NUMBER_REGEX.matcher(str);
 		}
 
 		return str;
@@ -1238,24 +1244,22 @@ public final class Strings
 
 	private static int search(final CharSequence s, String searchString, int pos)
 	{
-		int matchIndex = -1;
 		if (s instanceof String)
 		{
-			matchIndex = ((String)s).indexOf(searchString, pos);
+			return ((String)s).indexOf(searchString, pos);
 		}
 		else if (s instanceof StringBuffer)
 		{
-			matchIndex = ((StringBuffer)s).indexOf(searchString, pos);
+			return ((StringBuffer)s).indexOf(searchString, pos);
 		}
 		else if (s instanceof AppendingStringBuffer)
 		{
-			matchIndex = ((AppendingStringBuffer)s).indexOf(searchString, pos);
+			return ((AppendingStringBuffer)s).indexOf(searchString, pos);
 		}
 		else
 		{
-			matchIndex = s.toString().indexOf(searchString, pos);
+			return s.toString().indexOf(searchString, pos);
 		}
-		return matchIndex;
 	}
 
 	/**
@@ -1267,7 +1271,7 @@ public final class Strings
 	 */
 	private static char toHex(int nibble)
 	{
-		return hexDigit[(nibble & 0xF)];
+		return HEX_DIGIT[(nibble & 0xF)];
 	}
 
 	/**
@@ -1324,11 +1328,20 @@ public final class Strings
 	}
 
 	/**
-	 * Private constructor prevents construction.
-	 */
-	private Strings()
-	{
-	}
-
+	 * returns the zero-based index of a character within a char sequence. this method mainly
+	 * exists as an faster alternative for <code>sequence.toString().indexOf(ch)</code>.
+	 *
+	 * @param sequence character sequence
+	 * @param ch character to search for
+	 * @return index of character within character sequence or <code>-1</code> if not found
+	 */
+	public static int indexOf(CharSequence sequence, char ch)
+	{
+		if (sequence != null)
+			for (int i = 0; i < sequence.length(); i++)
+				if (sequence.charAt(i) == ch)
+					return i;
 
+		return -1;
+	}
 }