Longpublic 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 . |
Fields Summary |
---|
public static final long | MIN_VALUEThe smallest value of type long . | public static final long | MAX_VALUEThe largest value of type long . | private long | valueThe value of the Long. |
Constructors Summary |
---|
public Long(long value)Constructs a newly allocated Long object that
represents the primitive long argument.
this.value = value;
|
Methods Summary |
---|
public boolean | equals(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.
if (obj instanceof Long) {
return value == ((Long)obj).longValue();
}
return false;
| public int | hashCode()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 (int)(value ^ (value >> 32));
| public long | longValue()Returns the value of this Long as a long value.
return (long)value;
| public static long | parseLong(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
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 long | parseLong(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.
return parseLong(s, 10);
| public static java.lang.String | toString(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.
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.String | toString(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.
return toString(i, 10);
| public java.lang.String | toString()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 String.valueOf(value);
|
|