Andrew John Hughes wrote:

> 
> Interestingly, our parseInt Mauve test has this:
> 
>     // In JDK1.7, '+' is considered a valid character.
>     try
>       {
>         i = Integer.parseInt("+10");
>         harness.check(true);
>       }
>     catch (NumberFormatException nfe)
>       {
>         harness.fail("Leading '+' does not throw NumberFormatException");
>       }
> 
> and indeed it does return 42 (so Classpath is still wrong returning
> -42).

1.7 Javadoc:


    /**
     * Parses the string argument as a signed integer in the radix
     * specified by the second argument. The characters in the string
     * must all be digits of the specified radix (as determined by
     * whether [EMAIL PROTECTED] java.lang.Character#digit(char, int)} returns a
     * nonnegative value), except that the first character may be an
     * ASCII minus sign [EMAIL PROTECTED] '-'} (<code>'&#92;u002D'</code>) to
     * indicate a negative value or an ASCII plus sign [EMAIL PROTECTED] '+'}
     * (<code>'&#92;u002B'</code>) to indicate a positive value. The
     * resulting integer value is returned.
     * 
     * <p>An exception of type [EMAIL PROTECTED] NumberFormatException} is
     * thrown if any of the following situations occurs:
     * <ul>
     * <li>The first argument is [EMAIL PROTECTED] null} or is a string of
     * length zero.
     *
     * <li>The radix is either smaller than 
     * [EMAIL PROTECTED] java.lang.Character#MIN_RADIX} or
     * larger than [EMAIL PROTECTED] java.lang.Character#MAX_RADIX}. 
     *
     * <li>Any character of the string is not a digit of the specified
     * radix, except that the first character may be a minus sign
     * [EMAIL PROTECTED] '-'} (<code>'&#92;u002D'</code>) or plus sign
     * [EMAIL PROTECTED] '+'} (<code>'&#92;u002B'</code>) provided that the
     * string is longer than length 1.
     *
     * <li>The value represented by the string is not a value of type
     * [EMAIL PROTECTED] int}. 
     * </ul>
     *
     * <p>Examples:
     * <blockquote><pre>
     * parseInt("0", 10) returns 0
     * parseInt("473", 10) returns 473
     * parseInt("+42", 10) returns 42

Reply via email to