JavaRush /Blogue Java /Random-PT /Pausa para café #115. Uma maneira simples de agrupar obje...

Pausa para café #115. Uma maneira simples de agrupar objetos em Java. Método charAt() – como usá-lo em Java

Publicado no grupo Random-PT

Uma maneira fácil de agrupar objetos em Java

Fonte: Dev.to Neste exemplo, aprenderemos como simplificar o agrupamento de objetos Map que contêm coleções como valores. Pausa para café #115.  Uma maneira simples de agrupar objetos em Java.  Método charAt() – como usá-lo em Java – 1Por exemplo, temos um objeto Map onde a chave é um número inteiro e os valores são um array de strings:
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]}
Tudo o que precisamos fazer é definir a estratégia de agrupamento. Por exemplo, a classe ArrayListGrouper já definida usa ArrayList como estratégia . Sempre podemos definir um novo Grouper que usará um GroupingStrateg diferente . Agora vamos mudar ArrayList para HashSet para tornar os elementos únicos:
public class HashSetGrouper<K, V> extends Grouper<K, V> {

    public HashSetGrouper() {
        super(HashSet::new);
    }
}
Então testamos:
@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]}
A chave 1 agora possui um conjunto no qual o valor c não se repete. O código de exemplo está postado no Github .

Método charAt() – como usá-lo em Java

Fonte: FreeCodeCamp O método charAt() em Java retorna o valor do caractere char em uma string em um índice determinado ou especificado. Hoje veremos como usar o método charAt() , começando com sua sintaxe, e depois veremos alguns exemplos e casos de uso.

Como usar o método Java charAt()

Esta é a aparência da sintaxe do método charAt() :
public char charAt(int index)
Observe que os caracteres retornados de uma string usando o método charAt() são do tipo de dados char . Veremos como isso afeta a concatenação dos valores de retorno em um momento. Agora vamos ver exemplos:
public class Main {
  public static void main(String[] args) {

    String greetings = "Hello World";

    System.out.println(greetings.charAt(0));
    // H
  }
}
No código acima, nossa string, armazenada em uma variável chamada saudações , diz “Hello World”. Usamos o método charAt() para obter o caractere no índice 0. Esse caractere é a letra H. O primeiro caractere estará sempre no índice 0, o segundo no índice 1 e assim por diante. O espaço entre as substrings também é considerado um índice. No exemplo a seguir veremos o que acontece quando tentamos conectar diferentes caracteres retornados. Concatenação significa juntar dois ou mais valores (na maioria dos casos, o termo é usado para conectar caracteres ou substrings em uma string).
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
  }
}
Utilizando o método charAt() , obtivemos os caracteres com índices 0, 4, 9 e 10, que são as letras H, o, l e d respectivamente. Tentamos então imprimir e conectar estes caracteres:
System.out.println(ch1 + ch2 + ch3 + ch4);
Mas em vez de retornar “Hold”, obtivemos 391. Isso ocorre porque os valores retornados não são mais strings, mas são do tipo char . Então, quando os concatenamos, o intérprete adiciona seu valor ASCII. H tem um valor ASCII de 72, o tem um valor de 111, l tem um valor de 108 e d tem um valor de 100. Se os somarmos, obteremos 391, que foi retornado no último exemplo.

Erro StringIndexOutOfBoundsException

Quando passamos um número de sequência maior que o número de caracteres em nossa string, obtemos um erro StringIndexOutOfBoundsException no console. Este erro também se aplica ao uso de indexação negativa, que não é suportada em Java. Em linguagens de programação como Python que suportam indexação negativa, passar -1 fornecerá o último caractere ou valor no conjunto de dados, semelhante a como 0 sempre retorna o primeiro caractere. Aqui está um exemplo:
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
    */
  }
}
No código acima passamos o índice 20: char ch1 = saudações.charAt(20); , que excede o número de caracteres em nossa variável de saudações , então recebemos um erro. Você pode ver a mensagem de erro comentada no bloco de código acima. Da mesma forma, se passarmos um valor negativo como este: char ch1 = saudações.charAt(-1); , então obtemos um erro semelhante.

Conclusão

Neste artigo, aprendemos como usar o método charAt() em Java. Vimos como retornar caracteres em uma string com base em seu número de índice e o que acontece quando concatenamos esses caracteres. Também falamos sobre alguns casos em que você pode obter uma resposta de erro ao usar o método charAt() em Java.
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION