abk.core.util
Class CharUtils

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

public final class CharUtils
extends Object

Métodos de utilidad cuando se trabaja con vectores de caracteres.


Nested Class Summary
static class CharUtils.Sequence
          Implementación de CharSequence que embebe un char[] sin duplicarlo.
 
Constructor Summary
private CharUtils()
          Impide la creación de instancias de CharUtils.
 
Method Summary
static CharUtils.Sequence asSequence(char... value)
          Crea una instancia CharUtils.Sequence que encapsula una matriz de caracteres de 16 bits como un CharSequence.
static CharUtils.Sequence asSequence(int offset, int count, char... value)
          Crea una instancia CharUtils.Sequence que encapsula una matriz de caracteres de 16 bits como un CharSequence.
static void capitalize(char[] name, int offset)
          Método de utilidad que toma un vector de caracters y le invierte la capitalización normal del nombre de una variable Java.
static boolean contentEquals(char[] cs1, char[] cs2)
          Devuelve true si el contenido de dos secuencias de caracteres es éntico.
static void decapitalize(char[] name, int offset)
          Método de utilidad que toma un vector de caracters y le aplica la capitalización normal del nombre de una variable Java.
static boolean equalsIgnoreCase(char[] cs1, char[] cs2)
          Devuelve true si el contenido de dos secuencias de caracteres es el mismo sin distinguir entre mayúsculas y minúsculas.
static void getChars(char[] cs, int srcBegin, int srcEnd, char[] dst, int dstBegin)
          Copia un subconjunto de caracteres en un vector de caracteres que se le pasa.
static boolean isBlank(char... cs)
          Comprueba si una cadena es nula, vacía o formada únicamente por espacios, definidos como tal conforme al método Character.isWhitespace(int).
static boolean isDigits(char... value)
          Comprueba si la secuencia de caracteres contiene únicamente dígitos Unicode.
static int length(char... s)
          Devuelve la longitud de la cadena, o cero si la cadena recibida es nula.
static char[] strip(char... cs)
          Devuelve una copia de un vector de caracteres sin los posibles espacios iniciales o finales.
static char[] stripToEmpty(char... cs)
          Ejecuta una operación strip(char...)
static char[] stripToNull(char... cs)
          Ejecuta una operación strip(char...)
static char[] subSequence(char[] cs, int srcBegin, int srcEnd)
          Copia un subconjunto de una cadena de caracteres.
(package private) static void testSequenceLimits(int length, int srcBegin, int srcEnd)
          Comprueba que los valores srcBegin y srcEnd estén dentro del rango entre cero (incluido) y length (excluido) y que srcEnd sea mayor o igual que srcBegin, lanzando una excepción StringIndexOutOfBoundsException en caso contrario.
static char[] trim(char... cs)
          Devuelve una copia de un vector de caracteres sin los posibles espacios iniciales o finales.
static char[] trimToEmpty(char... cs)
          Ejecuta una operación trim(char...)
static char[] trimToNull(char... cs)
          Ejecuta una operación trim(char...)
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CharUtils

private CharUtils()
Impide la creación de instancias de CharUtils.

Method Detail

length

public static int length(char... s)
Devuelve la longitud de la cadena, o cero si la cadena recibida es nula.

Parameters:
s - Cadena cuya longitud se consulta.
Returns:
Longitud de la cadena, o cero si la cadena recibida es nula.
See Also:
ArrayUtils.size(char[])

isBlank

public static boolean isBlank(char... cs)
Comprueba si una cadena es nula, vacía o formada únicamente por espacios, definidos como tal conforme al método Character.isWhitespace(int).
 isBlank(null) = true
 isBlank("") = true
 isBlank(" ") = true
 isBlank("pep") = false
 isBlank(" pep ") = false
 

Parameters:
cs - Cadena a comprobar.
Returns:
true si la cadena es nula o vacía.
See Also:
Character.isWhitespace(int), ArrayUtils.isEmpty(char[])

isDigits

public static boolean isDigits(char... value)
Comprueba si la secuencia de caracteres contiene únicamente dígitos Unicode. Un punto decimal no es un dígito Unicode y devolverá false.
   CharUtils.isDigits(null)               = false
   CharUtils.isDigits()                   = false
   CharUtils.isDigits(new char[0])        = false
   CharUtils.isDigits(' ', ' ', ' ')      = false
   CharUtils.isDigits('1', '2', '3')      = true
   CharUtils.isDigits('1', '2', ' ', '3') = false
   CharUtils.isDigits("ab2c") = false
   CharUtils.isDigits('1', '2', '-', '3') = false
   CharUtils.isDigits('1', '2', '.', '3') = false
 

Parameters:
value - La secuencia a comprobar. Puede ser nula.
Returns:
true si value contiene únicamente dígitos, false si contiene algún caracter que no sea un dígito o si value es nula o está vacía.

testSequenceLimits

static void testSequenceLimits(int length,
                               int srcBegin,
                               int srcEnd)
Comprueba que los valores srcBegin y srcEnd estén dentro del rango entre cero (incluido) y length (excluido) y que srcEnd sea mayor o igual que srcBegin, lanzando una excepción StringIndexOutOfBoundsException en caso contrario.

Parameters:
length - Longitud del vector al que hacen referencia srcBegin y srcEnd.
srcBegin - Índice dentro de un vector de longitud length.
srcEnd - Índice dentro de un vector de longitud length, que debe ser superior o igual a srcBegin.
Throws:
StringIndexOutOfBoundsException - si los valores de srcBegin y srcEnd no están dentro del rango entre cero (incluido) y length (excluido) o srcEnd es menor que srcBegin.

getChars

public static void getChars(char[] cs,
                            int srcBegin,
                            int srcEnd,
                            char[] dst,
                            int dstBegin)
Copia un subconjunto de caracteres en un vector de caracteres que se le pasa.

Parameters:
cs - Instancia desde donde se copian los caracteres. Si es nulo se trata como un vector vacío.
srcBegin - Índice del primer caracter a copiar.
srcEnd - Índice del caracter en el que se para la copia (no incluido).
dst - Vector de caracteres donde dejar la copia.
dstBegin - Posición dentro de dst donde se inicia la copia.
Throws:
NullPointerException - si dst es nulo.
IndexOutOfBoundsException - si los valores de srcBegin, srcEnd y dstBegin generan algún error de desbordamiento dentro de cs o dst.

subSequence

public static char[] subSequence(char[] cs,
                                 int srcBegin,
                                 int srcEnd)
Copia un subconjunto de una cadena de caracteres.

Parameters:
cs - Instancia desde donde se copian los caracteres. Si es nulo se trata como un vector vacío.
srcBegin - Índice del primer caracter a copiar.
srcEnd - Índice del caracter en el que se para la copia (no incluido).
Returns:
Nueva instancia con el subconjunto de caracteres pedido.
Throws:
IndexOutOfBoundsException - si los valores de srcBegin, srcEnd generan algún error de desbordamiento dentro de cs.

trim

public static char[] trim(char... cs)
Devuelve una copia de un vector de caracteres sin los posibles espacios iniciales o finales. Se consideran como espacios aquellos caracteres con código menor o igual a 32 (' '). En caso de que el vector original no tenga espacios ni al principio ni al final, se devuelve el mismo vector.

Parameters:
cs - Vector de caracteres a limpiar de espacios. Si es nulo se devuelve null.
Returns:
Nuevo vector de caracteres limpio de espacios al principio y al final, o el mismo vector si cs carecia de estos espacios.

trimToEmpty

public static char[] trimToEmpty(char... cs)
Ejecuta una operación trim(char...) sobre un vector de caracteres, asegurándose de devolver un vector vacío en caso de que el resultado sea un vector nulo.

Parameters:
cs - Vector de caracteres a limpiar de espacios. Si es nulo se trata como un vector vacío.
Returns:
Nuevo vector de caracteres limpio de espacios al principio y al final, o el mismo vector si cs carecía de estos espacios. Nunca devuelve null.
See Also:
trim(char...)

trimToNull

public static char[] trimToNull(char... cs)
Ejecuta una operación trim(char...) sobre un vector de caracteres, asegurándose de devolver un vector nulo en caso de que el resultado sea un vector vacío.

Parameters:
cs - Vector de caracteres a limpiar de espacios. Si es nulo se trata como un vector vacío.
Returns:
Nuevo vector de caracteres limpio de espacios al principio y al final, o el mismo vector si cs carecía de estos espacios. Devuelve null si el resultado es un vector vacío.
See Also:
trim(char...)

strip

public static char[] strip(char... cs)
Devuelve una copia de un vector de caracteres sin los posibles espacios iniciales o finales. Se consideran como espacios aquellos caracteres para los que la función Character.isWhitespace(int) devuelva true. En caso de que el vector original no tenga espacios ni al principio ni al final, se devuelve el mismo vector.

Parameters:
cs - Vector de caracteres a limpiar de espacios. Si es nulo se devuelve null.
Returns:
Nuevo vector de caracteres limpio de espacios al principio y al final, o el mismo vector si cs carecia de estos espacios.
See Also:
Character.isWhitespace(int)

stripToEmpty

public static char[] stripToEmpty(char... cs)
Ejecuta una operación strip(char...) sobre un vector de caracteres, asegurándose de devolver un vector vacío en caso de que el resultado sea un vector nulo.

Parameters:
cs - Vector de caracteres a limpiar de espacios. Si es nulo se trata como un vector vacío.
Returns:
Nuevo vector de caracteres limpio de espacios al principio y al final, o el mismo vector si cs carecía de esos espacios. Nunca devuelve null.
See Also:
strip(char...)

stripToNull

public static char[] stripToNull(char... cs)
Ejecuta una operación strip(char...) sobre un vector de caracteres, asegurándose de devolver un vector nulo en caso de que el resultado sea un vector vacío.

Parameters:
cs - Vector de caracteres a limpiar de espacios. Si es nulo se trata como un vector vacío.
Returns:
Nuevo vector de caracteres limpio de espacios al principio y al final, o el mismo vector si cs carecía de esos espacios. Devuelve null si el resultado es un vector vacĂ­o.
See Also:
strip(char...)

decapitalize

public static void decapitalize(char[] name,
                                int offset)
Método de utilidad que toma un vector de caracters y le aplica la capitalización normal del nombre de una variable Java. Normalmente esto implica convertir la primera letra en minúscula, pero no así en el caso especial en el que segundo caracter sea mayúscula, en cuyo caso no se ejecuta esta conversión.

Es decir, "FooBah" se convierte en "fooBah" y "X" se transforma en "x", pero "URL" se mantiene como "URL" y "uRL" se mantiene como "uRL".

Parameters:
name - Vector a transformar.
offset - Posición dentro de name a partir de la cual se hace la descapitalización. Por ejemplo, decapitalize("getLength", 3) devolverá "getlength".
Throws:
IndexOutOfBoundsException - si offset es menor que cero o mayor que la longitud de name.
See Also:
capitalize(char[], int)

capitalize

public static void capitalize(char[] name,
                              int offset)
Método de utilidad que toma un vector de caracters y le invierte la capitalización normal del nombre de una variable Java. Normalmente esto implica convertir la primera letra en mayúscula, pero no así en el caso especial en el que segundo caracter sea mayúscula, en cuyo caso no se ejecuta esta conversión.

Es decir, "fooBah" se convierte en "FooBah" y "x" se transforma en "X", pero "URL" se mantiene como "URL" y "uRL" se mantiene como "uRL".

Parameters:
name - Vector a transformar.
offset - Posición dentro de name a partir de la cual se hace la capitalización. Por ejemplo, decapitalize("getlength", 3) devolverá "getLength".
Throws:
IndexOutOfBoundsException - si offset es menor que cero o mayor que la longitud de name.
See Also:
decapitalize(char[], int)

contentEquals

public static boolean contentEquals(char[] cs1,
                                    char[] cs2)
Devuelve true si el contenido de dos secuencias de caracteres es éntico.

Un valor nulo y una secuencia vacía se consideran iguales: ninguna de las dos tiene caracteres.

Parameters:
cs1 - Primera secuencia de caracteres a comparar.
cs2 - Segunda secuencia de caracteres a comparar.
Returns:
true si el contenido de dos secuencias de caracteres es éntico.

equalsIgnoreCase

public static boolean equalsIgnoreCase(char[] cs1,
                                       char[] cs2)
Devuelve true si el contenido de dos secuencias de caracteres es el mismo sin distinguir entre mayúsculas y minúsculas.

Parameters:
cs1 - Primera secuencia de caracteres a comparar.
cs2 - Segunda secuencia de caracteres a comparar.
Returns:
true si el contenido de dos secuencias de caracteres es el mismo sin distinguir entre mayúsculas y minúsculas.

asSequence

public static CharUtils.Sequence asSequence(char... value)
Crea una instancia CharUtils.Sequence que encapsula una matriz de caracteres de 16 bits como un CharSequence.

La matriz de caracteres no se duplica, si no que la instancia creada sirve para recorrer la misma matriz que se le pasa.

Parameters:
value - Matriz de caracteres a encapsular.
Returns:
Instancia pedida.
See Also:
CharSequence, CharUtils.Sequence

asSequence

public static CharUtils.Sequence asSequence(int offset,
                                            int count,
                                            char... value)
Crea una instancia CharUtils.Sequence que encapsula una matriz de caracteres de 16 bits como un CharSequence.

La matriz de caracteres no se duplica, si no que la instancia creada sirve para recorrer la misma matriz que se le pasa.

Parameters:
offset - Posición inicial de la nueva secuencia dentro de value. La posición cero de la secuencia accederá a la posición offset dentro de la matriz.
count - Número de caracteres que conforman la nueva secuencia, desde offset.
value - Matriz de caracteres para la secuencia. Si es nulo, se crea una secuencia vacía.
Throws:
StringIndexOutOfBoundsException - si offset o count conducen a valores fuera del rango válido para value


Copyright © 2024. All rights reserved.