JavaRush /Java Blog /Random-IT /Pausa caffè #115. Un modo semplice per raggruppare oggett...

Pausa caffè #115. Un modo semplice per raggruppare oggetti in Java. Metodo charAt(): come usarlo in Java

Pubblicato nel gruppo Random-IT

Un modo semplice per raggruppare oggetti in Java

Fonte: Dev.to In questo esempio, impareremo come semplificare il raggruppamento per oggetti Map che contengono raccolte come valori. Pausa caffè #115.  Un modo semplice per raggruppare oggetti in Java.  Metodo charAt() - come usarlo in Java - 1Ad esempio, abbiamo un oggetto Map in cui la chiave è un numero intero e i valori sono un array di stringhe:
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");
Risultato:
{1=[a, b, c, c], 2=[c]}
Tutto quello che dobbiamo fare è definire la strategia di raggruppamento. Ad esempio, la classe ArrayListGrouper già definita utilizza ArrayList come strategia . Possiamo sempre definire un nuovo Grouper che utilizzerà un GroupingStrateg diverso . Ora cambiamo ArrayList in HashSet per rendere unici gli elementi:
public class HashSetGrouper<K, V> extends Grouper<K, V> {

    public HashSetGrouper() {
        super(HashSet::new);
    }
}
Quindi testiamo:
@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);

    }
Risultato:
{1=[a, b, c], 2=[c]}
La chiave 1 ora ha un set in cui il valore c non viene ripetuto. Il codice di esempio è pubblicato su Github .

Metodo charAt(): come usarlo in Java

Fonte: FreeCodeCamp Il metodo charAt() in Java restituisce il valore del carattere char in una stringa in un indice dato o specificato. Oggi vedremo come utilizzare il metodo charAt() , iniziando dalla sua sintassi, per poi vedere alcuni esempi e casi d'uso.

Come utilizzare il metodo Java charAt()

Ecco come appare la sintassi del metodo charAt() :
public char charAt(int index)
Tieni presente che i caratteri restituiti da una stringa utilizzando il metodo charAt() sono del tipo di dati char . Vedremo tra poco come ciò influisce sulla concatenazione dei valori restituiti. Ora diamo un'occhiata agli esempi:
public class Main {
  public static void main(String[] args) {

    String greetings = "Hello World";

    System.out.println(greetings.charAt(0));
    // H
  }
}
Nel codice sopra, la nostra stringa, memorizzata in una variabile chiamata Greetings , dice "Hello World". Abbiamo utilizzato il metodo charAt() per ottenere il carattere all'indice 0. Quel carattere è la lettera H. Il primo carattere sarà sempre all'indice 0, il secondo all'indice 1 e così via. Anche lo spazio tra le sottostringhe è considerato un indice. Nell'esempio seguente vedremo cosa succede quando proviamo a connettere diversi caratteri restituiti. Concatenazione significa unire due o più valori insieme (nella maggior parte dei casi, il termine viene utilizzato per connettere caratteri o sottostringhe in una stringa).
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
  }
}
Utilizzando il metodo charAt() , abbiamo ottenuto i caratteri con indici 0, 4, 9 e 10, che sono rispettivamente le lettere H, o, l e d. Abbiamo quindi provato a stampare e collegare questi caratteri:
System.out.println(ch1 + ch2 + ch3 + ch4);
Ma invece di restituire “Hold”, abbiamo ottenuto 391. Questo perché i valori restituiti non sono più stringhe, ma sono di tipo char . Quindi quando li concateniamo, l'interprete aggiunge invece il loro valore ASCII. H ha un valore ASCII di 72, o ha un valore di 111, l ha un valore di 108 e d ha un valore di 100. Se li sommiamo insieme, otteniamo 391, che è stato restituito nell'ultimo esempio.

Errore StringIndexOutOfBoundsException

Quando passiamo un numero di sequenza maggiore del numero di caratteri nella nostra stringa, riceviamo un errore StringIndexOutOfBoundsException nella console. Questo errore si applica anche all'utilizzo dell'indicizzazione negativa, che non è supportata in Java. Nei linguaggi di programmazione come Python che supportano l'indicizzazione negativa, il passaggio di -1 ti darà l'ultimo carattere o valore nel set di dati, in modo simile a come 0 restituisce sempre il primo carattere. Ecco un esempio:
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
    */
  }
}
Nel codice sopra abbiamo passato l'indice 20: char ch1 = Greetings.charAt(20); , che supera il numero di caratteri nella nostra variabile di saluto , quindi abbiamo ricevuto un errore. Puoi vedere il messaggio di errore commentato nel blocco di codice sopra. Allo stesso modo, se passiamo un valore negativo come questo: char ch1 = Greetings.charAt(-1); , otteniamo un errore simile.

Conclusione

In questo articolo abbiamo imparato come utilizzare il metodo charAt() in Java. Abbiamo visto come restituire i caratteri in una stringa in base al loro numero di indice e cosa succede quando concateniamo tali caratteri. Abbiamo anche parlato di alcuni casi in cui è possibile ottenere una risposta di errore quando si utilizza il metodo charAt() in Java.
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION