JavaRush /Blog Java /Random-ES /Pausa para el café #115. Una forma sencilla de agrupar ob...

Pausa para el café #115. Una forma sencilla de agrupar objetos en Java. Método charAt(): cómo usarlo en Java

Publicado en el grupo Random-ES

Una forma sencilla de agrupar objetos en Java

Fuente: Dev.to En este ejemplo, aprenderemos cómo simplificar la agrupación de objetos Map que contienen colecciones como valores. Pausa para el café #115.  Una forma sencilla de agrupar objetos en Java.  Método charAt() - cómo usarlo en Java - 1Por ejemplo, tenemos un objeto Map donde la clave es un número entero y los valores son una matriz de cadenas:
Grouper<Integer, String> grouper = new ArrayListGrouper<>();
        grouper.put(1, "a");
        grouper.put(1, "b");
        grouper.put(1, "c");
        grouper.put(1, "c");
        grouper.put(2, "c");
Resultado:
{1=[a,b,c,c], 2=[c]}
Todo lo que tenemos que hacer es definir la estrategia de agrupación. Por ejemplo, la clase ArrayListGrouper ya definida utiliza ArrayList como estrategia . Siempre podemos definir un nuevo Grouper que utilizará una GroupingStrateg diferente . Ahora cambiemos ArrayList a HashSet para que los elementos sean únicos:
public class HashSetGrouper<K, V> extends Grouper<K, V> {

    public HashSetGrouper() {
        super(HashSet::new);
    }
}
Luego probamos:
@Test
    public void testHashSetGrouper() {
        Grouper<Integer, String> grouper = new HashSetGrouper<>();
        grouper.put(1, "a");
        grouper.put(1, "b");
        grouper.put(1, "c");
        grouper.put(1, "c");
        grouper.put(2, "c");
        System.out.println(grouper);

    }
Resultado:
{1=[a,b,c], 2=[c]}
La clave 1 ahora tiene un conjunto en el que el valor c no se repite. El código de ejemplo está publicado en Github .

Método charAt(): cómo usarlo en Java

Fuente: FreeCodeCamp El método charAt() en Java devuelve el valor del carácter char en una cadena en un índice dado o especificado. Hoy veremos cómo usar el método charAt() , comenzando con su sintaxis, y luego veremos algunos ejemplos y casos de uso.

Cómo utilizar el método Java charAt()

Así es como se ve la sintaxis del método charAt() :
public char charAt(int index)
Tenga en cuenta que los caracteres devueltos por una cadena utilizando el método charAt() son del tipo de datos char . Veremos cómo afecta esto a la concatenación de valores de retorno en un momento. Ahora veamos ejemplos:
public class Main {
  public static void main(String[] args) {

    String greetings = "Hello World";

    System.out.println(greetings.charAt(0));
    // H
  }
}
En el código anterior, nuestra cadena, almacenada en una variable llamada saludos , dice "Hola mundo". Usamos el método charAt() para obtener el carácter en el índice 0. Ese carácter es la letra H. El primer carácter siempre estará en el índice 0, el segundo en el índice 1, y así sucesivamente. El espacio entre subcadenas también se considera un índice. En el siguiente ejemplo veremos qué sucede cuando intentamos conectar diferentes caracteres devueltos. La concatenación significa unir dos o más valores (en la mayoría de los casos, el término se usa para conectar caracteres o subcadenas en una cadena).
public class Main {
  public static void main(String[] args) {
    String greetings = "Hello World";

    char ch1 = greetings.charAt(0); // H
    char ch2 = greetings.charAt(4); // o
    char ch3 = greetings.charAt(9); // l
    char ch4 = greetings.charAt(10); // d

    System.out.println(ch1 + ch2 + ch3 + ch4);
    // 391
  }
}
Usando el método charAt() , obtuvimos los caracteres con índices 0, 4, 9 y 10, que son las letras H, o, l y d respectivamente. Luego intentamos imprimir y conectar estos caracteres:
System.out.println(ch1 + ch2 + ch3 + ch4);
Pero en lugar de devolver "Hold", obtuvimos 391. Esto se debe a que los valores devueltos ya no son cadenas, sino que son de tipo char . Entonces, cuando los concatenamos, el intérprete agrega su valor ASCII. H tiene un valor ASCII de 72, o tiene un valor de 111, l tiene un valor de 108 y d tiene un valor de 100. Si los sumamos, obtenemos 391, que se devolvió en el último ejemplo.

Error StringIndexOutOfBoundsException

Cuando pasamos un número de secuencia que es mayor que el número de caracteres de nuestra cadena, obtenemos un error StringIndexOutOfBoundsException en la consola. Este error también se aplica al uso de indexación negativa, que no es compatible con Java. En lenguajes de programación como Python que admiten la indexación negativa, pasar -1 le dará el último carácter o valor del conjunto de datos, de forma similar a cómo 0 siempre devuelve el primer carácter. He aquí un ejemplo:
public class Main {
  public static void main(String[] args) {
    String greetings = "Hello World";

    char ch1 = greetings.charAt(20);

    System.out.println(ch1);

    /* Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 20
    */
  }
}
En el código anterior hemos pasado el índice 20: char ch1 = Greetings.charAt(20); , que excede la cantidad de caracteres en nuestra variable de saludos , por lo que obtuvimos un error. Puede ver el mensaje de error comentado en el bloque de código anterior. Del mismo modo, si pasamos un valor negativo como este: char ch1 = Greetings.charAt(-1); , entonces obtenemos un error similar.

Conclusión

En este artículo, aprendimos cómo utilizar el método charAt() en Java. Vimos cómo devolver caracteres en una cadena según su número de índice y qué sucede cuando concatenamos esos caracteres. También hablamos de algunos casos en los que puedes obtener una respuesta de error al utilizar el método charAt() en Java.
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION