abk.core.util
Class CharUtils.Sequence

java.lang.Object
  extended by abk.core.util.CharUtils.Sequence
All Implemented Interfaces:
Serializable, CharSequence
Enclosing class:
CharUtils

public static class CharUtils.Sequence
extends Object
implements CharSequence, Serializable

Implementación de CharSequence que embebe un char[] sin duplicarlo.

Aunque la secuencia en sí misma en inmutable, porque ningún método la modifica, el contenido de la matriz de caracteres que embebe podrĂ­a ser modificado por métodos externos puesto que la referencia a dicha matriz de caracteres es compartida con el proceso que la crea.

See Also:
CharSequence, Serialized Form

Field Summary
private  int count
          Número de caracteres de value que forman parte de la secuencia.
private  int offset
          Posición desde el inicio de value desde la que se inicia la secuencia.
private  char[] value
          Matriz de caracteres de 16 bits.
 
Constructor Summary
private CharUtils.Sequence(char[] value)
          Constructor a partir de una matriz de caracteres.
private CharUtils.Sequence(char[] value, int offset, int count)
          Constructor a partir de una matriz de caracteres.
 
Method Summary
 char charAt(int index)
          Devuelve el caracter en la posición indicada.
 int length()
          Devuelve el número de caracteres de 16 bits en la secuencia.
 CharUtils.Sequence subSequence(int start)
          Devuelve una nueva secuencia que es un subconjunto de ésta.
 CharUtils.Sequence subSequence(int start, int end)
          Devuelve una nueva secuencia que es un subconjunto de ésta.
 String toString()
          Devuelve una cadena que contiene los mismos caracteres y en el mismo orden que la instancia para la que se invoca.
 String toString(int start)
          Devuelve una nueva cadena que es un subconjunto de esta secuencia.
 String toString(int start, int end)
          Devuelve una nueva cadena que es un subconjunto de esta secuencia.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

value

private final char[] value
Matriz de caracteres de 16 bits.


offset

private final int offset
Posición desde el inicio de value desde la que se inicia la secuencia.


count

private final int count
Número de caracteres de value que forman parte de la secuencia.

Constructor Detail

CharUtils.Sequence

private CharUtils.Sequence(char[] value)
Constructor a partir de una matriz de caracteres.

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 para la secuencia. Si es nulo, se crea una secuencia vacía.

CharUtils.Sequence

private CharUtils.Sequence(char[] value,
                           int offset,
                           int count)
Constructor a partir de una matriz de caracteres.

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 para la secuencia. Si es nulo, se crea una secuencia vacía.
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.
Throws:
StringIndexOutOfBoundsException - si offset o count conducen a valores fuera del rango válido para value
Method Detail

length

public int length()
Devuelve el número de caracteres de 16 bits en la secuencia.

Specified by:
length in interface CharSequence
Returns:
El número de caracteres de 16 bits en la secuencia.

charAt

public char charAt(int index)
Devuelve el caracter en la posición indicada. El rango del índice va desde cero hasta length() - 1.

El primer caracter está en la posición cero, el siguiente en la posición uno y así sucesivamente, como en el caso de los índices de matrices.

Specified by:
charAt in interface CharSequence
Parameters:
index - La posición del caracter a devolver.
Returns:
El valor del caracter pedido.
Throws:
IndexOutOfBoundsException - si el índice es negativo o no es menor que la longitud de la secuencia.

subSequence

public CharUtils.Sequence subSequence(int start,
                                      int end)
Devuelve una nueva secuencia que es un subconjunto de ésta. La nueva secuencia empieza en la posición indicada en start y termina en la posición end - 1.

La longitud de la nueva secuencia en caracteres de 16 bits es end - start, por lo que si end == start se devuelve una secuencia vacía.

La secuencia devuelta es un subconjunto del mismo vector de caracteres de la instancia para la que se invoca.

Specified by:
subSequence in interface CharSequence
Parameters:
start - La posición de inicio, incluida.
end - La posición final, excluida.
Returns:
La secuencia pedida.
Throws:
IndexOutOfBoundsException - Si start o end son negativos, si end es mayor que length(), o si start es mayor que end.

subSequence

public CharUtils.Sequence subSequence(int start)
Devuelve una nueva secuencia que es un subconjunto de ésta. La nueva secuencia empieza en la posición indicada en start y llega hasta el final de la secuencia para la que se invoca.

La longitud de la nueva secuencia en caracteres de 16 bits es length() - start, por lo que si length() == start se devuelve una secuencia vacía.

La secuencia devuelta es un subconjunto del mismo vector de caracteres de la instancia para la que se invoca.

Parameters:
start - La posición de inicio, incluida.
Returns:
La secuencia pedida.
Throws:
IndexOutOfBoundsException - Si start es negativo o si start es mayor que length().
See Also:
subSequence(int, int)

toString

public String toString()
Devuelve una cadena que contiene los mismos caracteres y en el mismo orden que la instancia para la que se invoca. La longitud de la cadena será la misma que la de la secuencia.

Specified by:
toString in interface CharSequence
Overrides:
toString in class Object
Returns:
Una cadena que contiene los mismos caracteres y en el mismo orden que la instancia para la que se invoca.

toString

public String toString(int start,
                       int end)
Devuelve una nueva cadena que es un subconjunto de esta secuencia. La nueva cadena empieza en la posición indicada en start y termina en la posición end - 1.

La longitud de la nueva cadena en caracteres es end - start, por lo que si end == start se devuelve una cadena vacía.

Se debe cumplir que toString(a,b) == subSequence(a,b).toString(), aunque implementado de forma más eficiente porque no se crea una instancia intermedia.

Parameters:
start - La posición de inicio, incluida.
end - La posición final, excluida.
Returns:
La nueva cadena.
Throws:
IndexOutOfBoundsException - Si start o end son negativos, si end es mayor que length(), o si start es mayor que end.

toString

public String toString(int start)
Devuelve una nueva cadena que es un subconjunto de esta secuencia. La nueva cadena empieza en la posición indicada en start y llega hasta el final de la secuencia para la que se invoca.

La longitud de la nueva cadena en caracteres es length() - start, por lo que si length() == start se devuelve una cadena vacía.

Se debe cumplir que toString(a) == subSequence(a).toString(), aunque implementado de forma más eficiente porque no se crea una instancia intermedia.

Parameters:
start - La posición de inicio, incluida.
Returns:
La nueva cadena.
Throws:
IndexOutOfBoundsException - Si start es negativo o si start es mayor que length().


Copyright © 2024. All rights reserved.