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