On 8/27/05, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
> Author: scolebourne
> Date: Sat Aug 27 04:46:31 2005
> New Revision: 240406
> 
> URL: http://svn.apache.org/viewcvs?rev=240406&view=rev
> Log:
> Add trim()
> 
> Modified:
>    
> jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/text/StrBuilder.java
>    
> jakarta/commons/proper/lang/trunk/src/test/org/apache/commons/lang/text/StrBuilderTest.java
> 
> Modified: 
> jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/text/StrBuilder.java
> URL: 
> http://svn.apache.org/viewcvs/jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/text/StrBuilder.java?rev=240406&r1=240405&r2=240406&view=diff
> ==============================================================================
> --- 
> jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/text/StrBuilder.java
>  (original)
> +++ 
> jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/text/StrBuilder.java
>  Sat Aug 27 04:46:31 2005
> @@ -1458,10 +1458,39 @@
>         }
> 
>         int half = size / 2;
> +        char[] buf = buffer;
>         for (int leftIdx = 0, rightIdx = size - 1; leftIdx < half; 
> leftIdx++,rightIdx--) {
> -            char swap = buffer[leftIdx];
> -            buffer[leftIdx] = buffer[rightIdx];
> -            buffer[rightIdx] = swap;
> +            char swap = buf[leftIdx];
> +            buf[leftIdx] = buf[rightIdx];
> +            buf[rightIdx] = swap;
> +        }
> +        return this;
> +    }
> +
> +    //-----------------------------------------------------------------------
> +    /**
> +     * Reverses the string builder placing each character in the opposite 
> index.
<snip/>

I think you meant to change to "Remove whitespace [in the
java.lang.String#trim() sense] from both ends." or some such.

-Rahul


> +     *
> +     * @return this, to enable chaining
> +     */
> +    public StrBuilder trim() {
> +        if (size == 0) {
> +            return this;
> +        }
> +        int len = size;
> +        char[] buf = buffer;
> +        int pos = 0;
> +        while (pos < len && buf[pos] <= ' ') {
> +            pos++;
> +        }
> +        while (pos < len && buf[len - 1] <= ' ') {
> +            len--;
> +        }
> +        if (len < size) {
> +            delete(len, size);
> +        }
> +        if (pos > 0) {
> +            delete(0, pos);
>         }
>         return this;
>     }
> 
> Modified: 
> jakarta/commons/proper/lang/trunk/src/test/org/apache/commons/lang/text/StrBuilderTest.java
> URL: 
> http://svn.apache.org/viewcvs/jakarta/commons/proper/lang/trunk/src/test/org/apache/commons/lang/text/StrBuilderTest.java?rev=240406&r1=240405&r2=240406&view=diff
> ==============================================================================
> --- 
> jakarta/commons/proper/lang/trunk/src/test/org/apache/commons/lang/text/StrBuilderTest.java
>  (original)
> +++ 
> jakarta/commons/proper/lang/trunk/src/test/org/apache/commons/lang/text/StrBuilderTest.java
>  Sat Aug 27 04:46:31 2005
> @@ -119,6 +119,7 @@
>         assertSame(sb, sb.minimizeCapacity());
>         assertSame(sb, sb.clear());
>         assertSame(sb, sb.reverse());
> +        assertSame(sb, sb.trim());
>     }
> 
>     //-----------------------------------------------------------------------
> @@ -1040,9 +1041,31 @@
>     public void testReverse() {
>         StrBuilder sb = new StrBuilder();
>         assertEquals("", sb.reverse().toString());
> -        sb.append(true);
> +
> +        sb.clear().append(true);
>         assertEquals("eurt", sb.reverse().toString());
>         assertEquals("true", sb.reverse().toString());
> +    }
> +
> +    //-----------------------------------------------------------------------
> +    public void testTrim() {
> +        StrBuilder sb = new StrBuilder();
> +        assertEquals("", sb.reverse().toString());
> +
> +        sb.clear().append(" \u0000 ");
> +        assertEquals("", sb.trim().toString());
> +
> +        sb.clear().append(" \u0000 a b c");
> +        assertEquals("a b c", sb.trim().toString());
> +
> +        sb.clear().append("a b c \u0000 ");
> +        assertEquals("a b c", sb.trim().toString());
> +
> +        sb.clear().append(" \u0000 a b c \u0000 ");
> +        assertEquals("a b c", sb.trim().toString());
> +
> +        sb.clear().append("a b c");
> +        assertEquals("a b c", sb.trim().toString());
>     }
> 
>     //-----------------------------------------------------------------------
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to