You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by fr...@apache.org on 2004/02/24 23:31:43 UTC
cvs commit: jakarta-commons/lang/src/test/org/apache/commons/lang StringUtilsIsTest.java
fredrik 2004/02/24 14:31:43
Modified: lang/src/java/org/apache/commons/lang StringUtils.java
lang/src/test/org/apache/commons/lang StringUtilsIsTest.java
Log:
Added isAsciiPrintable() http://issues.apache.org/bugzilla/show_bug.cgi?id=22489.
Revision Changes Path
1.128 +41 -2 jakarta-commons/lang/src/java/org/apache/commons/lang/StringUtils.java
Index: StringUtils.java
===================================================================
RCS file: /home/cvs/jakarta-commons/lang/src/java/org/apache/commons/lang/StringUtils.java,v
retrieving revision 1.127
retrieving revision 1.128
diff -u -r1.127 -r1.128
--- StringUtils.java 19 Feb 2004 21:31:19 -0000 1.127
+++ StringUtils.java 24 Feb 2004 22:31:42 -0000 1.128
@@ -54,7 +54,7 @@
* - changes the case of a String</li>
* <li><b>CountMatches</b>
* - counts the number of occurrences of one String in another</li>
- * <li><b>IsAlpha/IsNumeric/IsWhitespace</b>
+ * <li><b>IsAlpha/IsNumeric/IsWhitespace/IsAsciiPrintable</b>
* - checks the characters in a String</li>
* <li><b>DefaultString</b>
* - protects against a null input String</li>
@@ -109,6 +109,7 @@
* @author Gary Gregory
* @author Phil Steitz
* @author Al Chou
+ * @author Michael Davey
* @since 1.0
* @version $Id$
*/
@@ -3862,6 +3863,44 @@
return true;
}
+ /**
+ * <p>Checks if the string contains only ASCII printable characters.</p>
+ *
+ * <p><code>null</code> will return <code>false</code>.
+ * An empty String ("") will return <code>true</code>.</p>
+ *
+ * <pre>
+ * StringUtils.isAsciiPrintable(null) = false
+ * StringUtils.isAsciiPrintable("") = true
+ * StringUtils.isAsciiPrintable(" ") = true
+ * StringUtils.isAsciiPrintable("Ceki") = true
+ * StringUtils.isAsciiPrintable("ab2c") = true
+ * StringUtils.isAsciiPrintable("!ab-c~") = true
+ * StringUtils.isAsciiPrintable("\u0020") = true
+ * StringUtils.isAsciiPrintable("\u0021") = true
+ * StringUtils.isAsciiPrintable("\u007e") = true
+ * StringUtils.isAsciiPrintable("\u007f") = false
+ * StringUtils.isAsciiPrintable("Ceki G\u00fclc\u00fc") = false
+ * </pre>
+ *
+ * @param str the string to check, may be null
+ * @return <code>true</code> if every character is in the range
+ * 32 thru 126
+ * @since 2.1
+ */
+ public static boolean isAsciiPrintable(String str) {
+ if (str == null) {
+ return false;
+ }
+ int sz = str.length();
+ for (int i = 0; i < sz; i++) {
+ if (CharUtils.isAsciiPrintable(str.charAt(i)) == false) {
+ return false;
+ }
+ }
+ return true;
+ }
+
/**
* <p>Checks if the String contains only unicode digits.
* A decimal point is not a unicode digit and returns false.</p>
1.9 +27 -1 jakarta-commons/lang/src/test/org/apache/commons/lang/StringUtilsIsTest.java
Index: StringUtilsIsTest.java
===================================================================
RCS file: /home/cvs/jakarta-commons/lang/src/test/org/apache/commons/lang/StringUtilsIsTest.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- StringUtilsIsTest.java 18 Feb 2004 23:06:19 -0000 1.8
+++ StringUtilsIsTest.java 24 Feb 2004 22:31:43 -0000 1.9
@@ -24,6 +24,7 @@
* Unit tests {@link org.apache.commons.lang.StringUtils} - Substring methods
*
* @author <a href="mailto:scolebourne@joda.org">Stephen Colebourne</a>
+ * @author Michael Davey
* @version $Id$
*/
public class StringUtilsIsTest extends TestCase {
@@ -123,6 +124,31 @@
assertEquals(false, StringUtils.isAlphanumericSpace("hkHKHik*khbkuh"));
}
+ public void testIsAsciiPrintable_String() {
+ assertEquals(false, StringUtils.isAsciiPrintable(null));
+ assertEquals(true, StringUtils.isAsciiPrintable(""));
+ assertEquals(true, StringUtils.isAsciiPrintable(" "));
+ assertEquals(true, StringUtils.isAsciiPrintable("a"));
+ assertEquals(true, StringUtils.isAsciiPrintable("A"));
+ assertEquals(true, StringUtils.isAsciiPrintable("1"));
+ assertEquals(true, StringUtils.isAsciiPrintable("Ceki"));
+ assertEquals(true, StringUtils.isAsciiPrintable("!ab2c~"));
+ assertEquals(true, StringUtils.isAsciiPrintable("1000"));
+ assertEquals(true, StringUtils.isAsciiPrintable("10 00"));
+ assertEquals(false, StringUtils.isAsciiPrintable("10\t00"));
+ assertEquals(true, StringUtils.isAsciiPrintable("10.00"));
+ assertEquals(true, StringUtils.isAsciiPrintable("10,00"));
+ assertEquals(true, StringUtils.isAsciiPrintable("!ab-c~"));
+ assertEquals(true, StringUtils.isAsciiPrintable("hkHK=Hik6i?UGH_KJgU7.tUJgKJ*GI87GI,kug"));
+ assertEquals(true, StringUtils.isAsciiPrintable("\u0020"));
+ assertEquals(true, StringUtils.isAsciiPrintable("\u0021"));
+ assertEquals(true, StringUtils.isAsciiPrintable("\u007e"));
+ assertEquals(false, StringUtils.isAsciiPrintable("\u007f"));
+ assertEquals(true, StringUtils.isAsciiPrintable("G?lc?"));
+ assertEquals(true, StringUtils.isAsciiPrintable("=?iso-8859-1?Q?G=FClc=FC?="));
+ assertEquals(false, StringUtils.isAsciiPrintable("G\u00fclc\u00fc"));
+ }
+
public void testIsNumeric() {
assertEquals(false, StringUtils.isNumeric(null));
assertEquals(true, StringUtils.isNumeric(""));
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org