abk.core.util
Class NumberUtils

java.lang.Object
  extended by abk.core.util.NumberUtils

public final class NumberUtils
extends Object

Contiene métodos de utilidad para trabajar con números.


Field Summary
static Byte BYTE_ZERO
          Constante cero para la clase Byte.
static Double DOUBLE_ZERO
          Constante cero para la clase Double.
static Float FLOAT_ZERO
          Constante cero para la clase Float.
static Integer INTEGER_ZERO
          Constante cero para la clase Integer.
static Long LONG_ZERO
          Constante cero para la clase Long.
static Short SHORT_ZERO
          Constante cero para la clase Short.
 
Constructor Summary
private NumberUtils()
           
 
Method Summary
static byte byteValue(Number n)
          Devuelve el valor de un Number como byte, o 0 si el número es nulo.
static BigDecimal createBigDecimal(String value)
          Convierte una cadena de texto en BigDecimal.
static BigInteger createBigInteger(String value)
          Convierte una cadena de texto en BigInteger.
static Byte createByte(String value)
          Convierte una cadena de texto en Byte.
static Double createDouble(String value)
          Convierte una cadena de texto en Double.
static Float createFloat(String value)
          Convierte una cadena de texto en Float.
static Integer createInteger(String value)
          Convierte una cadena de texto en Integer.
static Long createLong(String value)
          Convierte una cadena de texto en Long.
static Number createNumber(String value)
          Convierte un String en un número usando la subclase de Number que menos pese.
static Number createNumber(String value, NumberFormat format)
          Convierte un String en un número usando una especificación de formato de conversión.
private static Number createNumberDecimal(String val, int decPos, int expPos)
           
private static Number createNumberInteger(String val)
           
static Short createShort(String value)
          Convierte una cadena de texto en Short.
static double doubleValue(Number n)
          Devuelve el valor de un Number como double, o 0 si el número es nulo.
static float floatValue(Number n)
          Devuelve el valor de un Number como float, o 0 si el número es nulo.
static int intValue(Number n)
          Devuelve el valor de un Number como int, o 0 si el número es nulo.
private static boolean isAllZeros(String str)
           
private static boolean isAllZeros(String val, int decPos, int expPos)
           
static long longValue(Number n)
          Devuelve el valor de un Number como long, o 0 si el número es nulo.
static BigDecimal nullToZero(BigDecimal n)
          Devuelve cero si un número es nulo, o bien el mismo número en otro caso.
static BigInteger nullToZero(BigInteger n)
          Devuelve cero si un número es nulo, o bien el mismo número en otro caso.
static Byte nullToZero(Byte n)
          Devuelve cero si un número es nulo, o bien el mismo número en otro caso.
static Double nullToZero(Double n)
          Devuelve cero si un número es nulo, o bien el mismo número en otro caso.
static Float nullToZero(Float n)
          Devuelve cero si un número es nulo, o bien el mismo número en otro caso.
static Integer nullToZero(Integer n)
          Devuelve cero si un número es nulo, o bien el mismo número en otro caso.
static Long nullToZero(Long n)
          Devuelve cero si un número es nulo, o bien el mismo número en otro caso.
static Short nullToZero(Short n)
          Devuelve cero si un número es nulo, o bien el mismo número en otro caso.
static
<T extends Number>
T
nullToZero(T t, Class<T> clann)
          Devuelve cero si un número es nulo, o bien el mismo número en otro caso.
private static NumberFormatException numberFormatExceptionOf(String val, Throwable t)
           
static
<T extends Number>
T
parseAs(String value, Class<T> type)
          Trata de parsear un cadena de texto como un número a del tipo indicado.
static
<T extends Number>
T
parseAs(String value, T as)
          Trata de parsear un cadena de texto como un número, recuperando el tipo de objeto final desde el argumento as.
static short shortValue(Number n)
          Devuelve el valor de un Number como short, o 0 si el número es nulo.
private static String skipPlusSign(String val)
           
static boolean testBits(int bits, int maskYes, int maskNot)
          Comprueba si un entero tiene activados un conjunto de bits y desactivado otro conjunto de bits.
static
<T extends Number>
T
zeroOf(Class<T> clann)
          Devuelve una instancia del tipo que se le indica correspondiente a un valor cero.
static
<T extends Number>
T
zeroToNull(T t)
          Devuelve null si un número vale cero o es nulo, o bien el mismo número en otro caso.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

INTEGER_ZERO

public static final Integer INTEGER_ZERO
Constante cero para la clase Integer.


LONG_ZERO

public static final Long LONG_ZERO
Constante cero para la clase Long.


SHORT_ZERO

public static final Short SHORT_ZERO
Constante cero para la clase Short.


BYTE_ZERO

public static final Byte BYTE_ZERO
Constante cero para la clase Byte.


DOUBLE_ZERO

public static final Double DOUBLE_ZERO
Constante cero para la clase Double.


FLOAT_ZERO

public static final Float FLOAT_ZERO
Constante cero para la clase Float.

Constructor Detail

NumberUtils

private NumberUtils()
Method Detail

parseAs

public static final <T extends Number> T parseAs(String value,
                                                 T as)
Trata de parsear un cadena de texto como un número, recuperando el tipo de objeto final desde el argumento as.

Parameters:
value - Valor que se parsea.
as - Objeto usado para saber el tipo exacto de la clave: Long, Integer, Short, Byte, Double, Float, BigInteger o BigDecimal, AtomicInteger.
Returns:
Objeto con el valor de la conversión.
Throws:
IllegalClassException - si as no se corresponde con ningún tipo numérico reconocido.
NullArgumentException - si as es nulo.
NumberFormatException - si value no puede ser parseado al tipo de número indicado.

parseAs

public static final <T extends Number> T parseAs(String value,
                                                 Class<T> type)
Trata de parsear un cadena de texto como un número a del tipo indicado.

Type Parameters:
T - Tipo de número al que parseamos. Puede ser Long, Integer, Short, Byte, Double, Float, BigInteger o BigDecimal.
Parameters:
value - Valor que se parsea.
type - Clase que identifica a T.
Returns:
Objeto con el valor de la conversi&oacutge;n.
Throws:
IllegalClassException - si type no se corresponde con ningún tipo numérico reconocido.
NullArgumentException - si type es nulo.
NumberFormatException - si value no puede ser parseado al tipo de número indicado.

testBits

public static final boolean testBits(int bits,
                                     int maskYes,
                                     int maskNot)
Comprueba si un entero tiene activados un conjunto de bits y desactivado otro conjunto de bits.

Parameters:
bits - Entero a probar.
maskYes - Máscara con los bits que deben estar presentes, puestos a uno.
maskNot - Máscara con los bits que deben estar ausentes, puestos a cero.
Returns:
true si se cumple la condición.

byteValue

public static final byte byteValue(Number n)
Devuelve el valor de un Number como byte, o 0 si el número es nulo.

Parameters:
n - Número que se consulta.
Returns:
Valor de n o 0 si n es nulo.

shortValue

public static final short shortValue(Number n)
Devuelve el valor de un Number como short, o 0 si el número es nulo.

Parameters:
n - Número que se consulta.
Returns:
Valor de n o 0 si n es nulo.

intValue

public static final int intValue(Number n)
Devuelve el valor de un Number como int, o 0 si el número es nulo.

Parameters:
n - Número que se consulta.
Returns:
Valor de n o 0 si n es nulo.

longValue

public static final long longValue(Number n)
Devuelve el valor de un Number como long, o 0 si el número es nulo.

Parameters:
n - Número que se consulta.
Returns:
Valor de n o 0 si n es nulo.

floatValue

public static final float floatValue(Number n)
Devuelve el valor de un Number como float, o 0 si el número es nulo.

Parameters:
n - Número que se consulta.
Returns:
Valor de n o 0 si n es nulo.

doubleValue

public static final double doubleValue(Number n)
Devuelve el valor de un Number como double, o 0 si el número es nulo.

Parameters:
n - Número que se consulta.
Returns:
Valor de n o 0 si n es nulo.

zeroToNull

public static final <T extends Number> T zeroToNull(T t)
Devuelve null si un número vale cero o es nulo, o bien el mismo número en otro caso.

Type Parameters:
T - Tipo del número que recibe y devuelve.
Parameters:
t - Número a evaluar.
Returns:
El propio número recibido, o null si t valía cero.

zeroOf

public static final <T extends Number> T zeroOf(Class<T> clann)
Devuelve una instancia del tipo que se le indica correspondiente a un valor cero.

Type Parameters:
T - Tipo numérico que deseamos para la salida.
Parameters:
clann - Clase correspondiente al tipo de número para cual pedimos un cero.
Returns:
Objeto numérico con el valor cero.
Throws:
NullArgumentException - si clann es nulo.
IllegalClassException - si clann no se corresponde con ninguno de los tipos de números reconocidos: Integer, Long,, Short, Byte, Double, Float, BigInteger y BigDecimal.
See Also:
Number

nullToZero

public static final <T extends Number> T nullToZero(T t,
                                                    Class<T> clann)
Devuelve cero si un número es nulo, o bien el mismo número en otro caso.

Type Parameters:
T - Tipo del número que recibe y devuelve.
Parameters:
t - Número a evaluar.
clann - Clase de T.
Returns:
El propio número recibido, o null si t vale cero.
See Also:
zeroOf(Class)

nullToZero

public static final Integer nullToZero(Integer n)
Devuelve cero si un número es nulo, o bien el mismo número en otro caso.

Parameters:
n - Número a evaluar.
Returns:
El propio número recibido, o INTEGER_ZERO si n es nulo.

nullToZero

public static final Long nullToZero(Long n)
Devuelve cero si un número es nulo, o bien el mismo número en otro caso.

Parameters:
n - Número a evaluar.
Returns:
El propio úmero recibido, o LONG_ZERO si n es nulo.

nullToZero

public static final Short nullToZero(Short n)
Devuelve cero si un número es nulo, o bien el mismo número en otro caso.

Parameters:
n - Número a evaluar.
Returns:
El propio número recibido, o SHORT_ZERO si n es nulo.

nullToZero

public static final Byte nullToZero(Byte n)
Devuelve cero si un número es nulo, o bien el mismo número en otro caso.

Parameters:
n - Número a evaluar.
Returns:
El propio número recibido, o BYTE_ZERO si n es nulo.

nullToZero

public static final Double nullToZero(Double n)
Devuelve cero si un número es nulo, o bien el mismo número en otro caso.

Parameters:
n - Número a evaluar.
Returns:
El propio número recibido, o DOUBLE_ZERO si n es nulo.

nullToZero

public static final Float nullToZero(Float n)
Devuelve cero si un número es nulo, o bien el mismo número en otro caso.

Parameters:
n - Número a evaluar.
Returns:
El propio número recibido, o FLOAT_ZERO si n es nulo.

nullToZero

public static final BigInteger nullToZero(BigInteger n)
Devuelve cero si un número es nulo, o bien el mismo número en otro caso.

Parameters:
n - Número a evaluar.
Returns:
El propio número recibido, o BigInteger.ZERO si n es nulo.

nullToZero

public static final BigDecimal nullToZero(BigDecimal n)
Devuelve cero si un número es nulo, o bien el mismo número en otro caso.

Parameters:
n - Número a evaluar.
Returns:
El propio número recibido, o BigDecimal.ZERO si n es nulo.

createInteger

public static final Integer createInteger(String value)
Convierte una cadena de texto en Integer.

Parameters:
value - Texto a convertir.
Returns:
Valor del texto o null si el valor es una cadena nula o vacía.
Throws:
NumberFormatException - si el valor recuperado no tiene un formato adecuado para un número entero.
See Also:
Integer.decode(String)

createLong

public static final Long createLong(String value)
Convierte una cadena de texto en Long.

Parameters:
value - Texto a convertir.
Returns:
Valor del texto o null si el valor es una cadena nula o vacía.
Throws:
NumberFormatException - si el valor recuperado no tiene un formato adecuado para un número largo.
See Also:
Long.decode(String)

createShort

public static final Short createShort(String value)
Convierte una cadena de texto en Short.

Parameters:
value - Texto a convertir.
Returns:
Valor del texto o null si el valor es una cadena nula o vacía.
Throws:
NumberFormatException - si el valor recuperado no tiene un formato adecuado para un número corto.
See Also:
Short.decode(String)

createByte

public static final Byte createByte(String value)
Convierte una cadena de texto en Byte.

Parameters:
value - Texto a convertir.
Returns:
Valor del texto o null si el valor es una cadena nula o vacía.
Throws:
NumberFormatException - si el valor recuperado no tiene un formato adecuado para un byte.
See Also:
Byte.decode(String)

createDouble

public static final Double createDouble(String value)
Convierte una cadena de texto en Double.

Parameters:
value - Texto a convertir.
Returns:
Valor del texto o null si el valor es una cadena nula o vacía.
Throws:
NumberFormatException - si el valor recuperado no tiene un formato adecuado para un número decimal.
See Also:
Double.valueOf(String)

createFloat

public static final Float createFloat(String value)
Convierte una cadena de texto en Float.

Parameters:
value - Texto a convertir.
Returns:
Valor del texto o null si el valor es una cadena nula o vacía.
Throws:
NumberFormatException - si el valor recuperado no tiene un formato adecuado para un número decimal corto.
See Also:
Float.valueOf(String)

createBigDecimal

public static final BigDecimal createBigDecimal(String value)
Convierte una cadena de texto en BigDecimal.

Parameters:
value - Texto a convertir.
Returns:
Valor del texto o null si el valor es una cadena nula o vacía.
Throws:
NumberFormatException - si el valor recuperado no tiene un formato adecuado para un BigDecimal.

createBigInteger

public static final BigInteger createBigInteger(String value)
Convierte una cadena de texto en BigInteger.

Parameters:
value - Texto a convertir.
Returns:
Valor del texto o null si el valor es una cadena nula o vacía.
Throws:
NumberFormatException - si el valor recuperado no tiene un formato adecuado para un BigInteger.

createNumber

public static final Number createNumber(String value)
Convierte un String en un número usando la subclase de Number que menos pese.

Los tipos de número que puede devolver son BigDecimal, Double, Float, BigInteger, Long, Integer, Short o Byte.

Cuando se devuelve un valor Double, será un Double válido, y no NaN o ±infinito.

Parameters:
value - Valor a convertir
Returns:
Representación del valor como Number o null si value es nulo o vacío.
Throws:
NumberFormatException - si value es una cadena no vacía que no se corresponde con un número válido.

skipPlusSign

private static String skipPlusSign(String val)

numberFormatExceptionOf

private static NumberFormatException numberFormatExceptionOf(String val,
                                                             Throwable t)

createNumberDecimal

private static Number createNumberDecimal(String val,
                                          int decPos,
                                          int expPos)

createNumberInteger

private static Number createNumberInteger(String val)

isAllZeros

private static boolean isAllZeros(String val,
                                  int decPos,
                                  int expPos)

isAllZeros

private static boolean isAllZeros(String str)

createNumber

public static final Number createNumber(String value,
                                        NumberFormat format)
Convierte un String en un número usando una especificación de formato de conversión.

Parameters:
value - Valor a convertir.
format - Formato del número en el texto.
Returns:
Valor del texto o null si el valor es una cadena nula o vacía.
Throws:
NumberFormatException - si el valor recuperado no tiene un formato adecuado para un número.


Copyright © 2024. All rights reserved.