FileDocCategorySizeDatePackage
Long.javaAPI DocphoneME MR2 API (J2ME)13628Wed May 02 17:59:54 BST 2007java.lang

Long

public final class Long extends Object
The Long class wraps a value of the primitive type long in an object. An object of type Long contains a single field whose type is long.

In addition, this class provides several methods for converting a long to a String and a String to a long, as well as other constants and methods useful when dealing with a long.

version
1.51, 12/04/99 (CLDC 1.0, Spring 2000)
since
JDK1.0

Fields Summary
public static final long
MIN_VALUE
The smallest value of type long.
public static final long
MAX_VALUE
The largest value of type long.
private long
value
The value of the Long.
Constructors Summary
public Long(long value)
Constructs a newly allocated Long object that represents the primitive long argument.

param
value the value to be represented by the Long object.

        this.value = value;
    
Methods Summary
public booleanequals(java.lang.Object obj)
Compares this object against the specified object. The result is true if and only if the argument is not null and is a Long object that contains the same long value as this object.

param
obj the object to compare with.
return
true if the objects are the same; false otherwise.

        if (obj instanceof Long) {
            return value == ((Long)obj).longValue();
        }
        return false;
    
public inthashCode()
Computes a hashcode for this Long. The result is the exclusive OR of the two halves of the primitive long value represented by this Long object. That is, the hashcode is the value of the expression:
(int)(this.longValue()^(this.longValue()>>>32))

return
a hash code value for this object.

        return (int)(value ^ (value >> 32));
    
public longlongValue()
Returns the value of this Long as a long value.

return
the long value represented by this object.

        return (long)value;
    
public static longparseLong(java.lang.String s, int radix)
Parses the string argument as a signed long 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 Character.digit returns a nonnegative value), except that the first character may be an ASCII minus sign '-' ('\u002d' to indicate a negative value. The resulting long value is returned.

Note that neither L nor l is permitted to appear at the end of the string as a type indicator, as would be permitted in Java programming language source code - except that either L or l may appear as a digit for a radix greater than 22.

An exception of type NumberFormatException is thrown if any of the following situations occurs:

  • The first argument is null or is a string of length zero.
  • The radix is either smaller than {@link java.lang.Character#MIN_RADIX} or larger than {@link java.lang.Character#MAX_RADIX}.
  • The first character of the string is not a digit of the specified radix and is not a minus sign '-' ('\u002d').
  • The first character of the string is a minus sign and the string is of length 1.
  • Any character of the string after the first is not a digit of the specified radix.
  • The integer value represented by the string cannot be represented as a value of type long.

Examples:

parseLong("0", 10) returns 0L
parseLong("473", 10) returns 473L
parseLong("-0", 10) returns 0L
parseLong("-FF", 16) returns -255L
parseLong("1100110", 2) returns 102L
parseLong("99", 8) throws a NumberFormatException
parseLong("Hazelnut", 10) throws a NumberFormatException
parseLong("Hazelnut", 36) returns 1356099454469L

param
s the String containing the long.
param
radix the radix to be used.
return
the long represented by the string argument in the specified radix.
exception
NumberFormatException if the string does not contain a parsable integer.

      if (s == null) {
          throw new NumberFormatException(
/* #ifdef VERBOSE_EXCEPTIONS */
/// skipped                     "null"
/* #endif */
          );
      }

      if (radix < Character.MIN_RADIX) {
          throw new NumberFormatException(
/* #ifdef VERBOSE_EXCEPTIONS */
/// skipped                     "radix " + radix + " less than Character.MIN_RADIX"
/* #endif */
          );
      }
      if (radix > Character.MAX_RADIX) {
          throw new NumberFormatException(
/* #ifdef VERBOSE_EXCEPTIONS */
/// skipped                       "radix " + radix + " greater than Character.MAX_RADIX"
/* #endif */
          );
      }

      long result = 0;
      boolean negative = false;
      int i = 0, max = s.length();
      long limit;
      long multmin;
      int digit;

      if (max > 0) {
          if (s.charAt(0) == '-") {
              negative = true;
              limit = Long.MIN_VALUE;
              i++;
          } else {
              limit = -Long.MAX_VALUE;
          }
          multmin = limit / radix;
            if (i < max) {
                digit = Character.digit(s.charAt(i++),radix);
              if (digit < 0) {
                  throw new NumberFormatException(
/* #ifdef VERBOSE_EXCEPTIONS */
/// skipped                             s
/* #endif */
                  );
              } else {
                  result = -digit;
              }
          }
          while (i < max) {
              // Accumulating negatively avoids surprises near MAX_VALUE
              digit = Character.digit(s.charAt(i++),radix);
              if (digit < 0) {
                  throw new NumberFormatException(
/* #ifdef VERBOSE_EXCEPTIONS */
/// skipped                             s
/* #endif */
                  );
              }
              if (result < multmin) {
                  throw new NumberFormatException(
/* #ifdef VERBOSE_EXCEPTIONS */
/// skipped                             s
/* #endif */
                  );
              }
              result *= radix;
              if (result < limit + digit) {
                  throw new NumberFormatException(
/* #ifdef VERBOSE_EXCEPTIONS */
/// skipped                             s
/* #endif */
                  );
              }
              result -= digit;
          }
      } else {
          throw new NumberFormatException(
/* #ifdef VERBOSE_EXCEPTIONS */
/// skipped                     s
/* #endif */
          );
      }
      if (negative) {
          if (i > 1) {
              return result;
          } else {    /* Only got "-" */
              throw new NumberFormatException(
/* #ifdef VERBOSE_EXCEPTIONS */
/// skipped                         s
/* #endif */
              );
          }
      } else {
          return -result;
      }
    
public static longparseLong(java.lang.String s)
Parses the string argument as a signed decimal long. The characters in the string must all be decimal digits, except that the first character may be an ASCII minus sign '-' (\u002d') to indicate a negative value. The resulting long value is returned, exactly as if the argument and the radix 10 were given as arguments to the {@link #parseLong(String, int)} method that takes two arguments.

Note that neither L nor l is permitted to appear at the end of the string as a type indicator, as would be permitted in Java programming language source code.

param
s a string.
return
the long represented by the argument in decimal.
exception
NumberFormatException if the string does not contain a parsable long.

      return parseLong(s, 10);
    
public static java.lang.StringtoString(long i, int radix)
Creates a string representation of the first argument in the radix specified by the second argument.

If the radix is smaller than Character.MIN_RADIX or larger than Character.MAX_RADIX, then the radix 10 is used instead.

If the first argument is negative, the first element of the result is the ASCII minus sign '-' ('\u002d'. If the first argument is not negative, no sign character appears in the result.

The remaining characters of the result represent the magnitude of the first argument. If the magnitude is zero, it is represented by a single zero character '0' ('\u0030'); otherwise, the first character of the representation of the magnitude will not be the zero character. The following ASCII characters are used as digits:

0123456789abcdefghijklmnopqrstuvwxyz
These are '\u0030' through '\u0039' and '\u0061' through '\u007a'. If the radix is N, then the first N of these characters are used as radix-N digits in the order shown. Thus, the digits for hexadecimal (radix 16) are
0123456789abcdef.

param
i a long.
param
radix the radix.
return
a string representation of the argument in the specified radix.
see
java.lang.Character#MAX_RADIX
see
java.lang.Character#MIN_RADIX


                                                                                                                                                                                                                             
           
        if (radix < Character.MIN_RADIX || radix > Character.MAX_RADIX)
            radix = 10;

        char[] buf = new char[65];
        int charPos = 64;
        boolean negative = (i < 0);

        if (!negative) {
            i = -i;
        }

        while (i <= -radix) {
            buf[charPos--] = Integer.digits[(int)(-(i % radix))];
            i = i / radix;
        }
        buf[charPos] = Integer.digits[(int)(-i)];

        if (negative) {
            buf[--charPos] = '-";
        }

        return new String(buf, charPos, (65 - charPos));
    
public static java.lang.StringtoString(long i)
Returns a new String object representing the specified integer. The argument is converted to signed decimal representation and returned as a string, exactly as if the argument and the radix 10 were given as arguments to the {@link #toString(long, int)} method that takes two arguments.

param
i a long to be converted.
return
a string representation of the argument in base 10.

        return toString(i, 10);
    
public java.lang.StringtoString()
Returns a String object representing this Long's value. The long integer value represented by this Long object is converted to signed decimal representation and returned as a string, exactly as if the long value were given as an argument to the {@link #toString(long)} method that takes one argument.

return
a string representation of this object in base 10.

        return String.valueOf(value);