JavaRush /Java-Blog /Random-DE /Kaffeepause Nr. 115. Eine einfache Möglichkeit, Objekte i...

Kaffeepause Nr. 115. Eine einfache Möglichkeit, Objekte in Java zu gruppieren. charAt()-Methode – wie man sie in Java verwendet

Veröffentlicht in der Gruppe Random-DE

Eine einfache Möglichkeit, Objekte in Java zu gruppieren

Quelle: Dev.to In diesem Beispiel lernen wir, wie man die Gruppierung für Map- Objekte vereinfacht , die Sammlungen als Werte enthalten. Kaffeepause Nr. 115.  Eine einfache Möglichkeit, Objekte in Java zu gruppieren.  charAt()-Methode – wie man sie in Java verwendet – 1Wir haben zum Beispiel ein Map- Objekt , bei dem der Schlüssel eine Ganzzahl und die Werte ein Array von Zeichenfolgen sind:
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");
Ergebnis:
{1=[a, b, c, c], 2=[c]}
Wir müssen lediglich die Gruppierungsstrategie definieren. Beispielsweise verwendet die bereits definierte Klasse ArrayListGrouper ArrayList als Strategie . Wir können jederzeit einen neuen Grouper definieren, der eine andere GroupingStrateg verwendet . Jetzt ändern wir die ArrayList in ein HashSet , um die Elemente eindeutig zu machen:
public class HashSetGrouper<K, V> extends Grouper<K, V> {

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

    }
Ergebnis:
{1=[a, b, c], 2=[c]}
Schlüssel 1 hat jetzt einen Satz, in dem der Wert c nicht wiederholt wird. Der Beispielcode ist auf Github veröffentlicht .

charAt()-Methode – wie man sie in Java verwendet

Quelle: FreeCodeCamp Die Methode charAt() in Java gibt den Wert des Zeichens char in einer Zeichenfolge an einem bestimmten oder angegebenen Index zurück. Heute werden wir sehen, wie man die Methode charAt() verwendet , beginnend mit ihrer Syntax und uns dann einige Beispiele und Anwendungsfälle ansehen.

So verwenden Sie die Java-Methode charAt()

So sieht die Syntax für die charAt()- Methode aus :
public char charAt(int index)
Beachten Sie, dass die von einer Zeichenfolge mit der Methode charAt() zurückgegebenen Zeichen vom Datentyp char sind . Wir werden gleich sehen, wie sich dies auf die Verkettung von Rückgabewerten auswirkt. Schauen wir uns nun Beispiele an:
public class Main {
  public static void main(String[] args) {

    String greetings = "Hello World";

    System.out.println(greetings.charAt(0));
    // H
  }
}
Im obigen Code lautet unsere Zeichenfolge, die in einer Variablen namens Greetings gespeichert ist , „Hello World“. Wir haben die Methode charAt() verwendet , um das Zeichen am Index 0 abzurufen. Dieses Zeichen ist der Buchstabe H. Das erste Zeichen befindet sich immer am Index 0, das zweite am Index 1 und so weiter. Der Abstand zwischen Teilzeichenfolgen wird ebenfalls als Index betrachtet. Im folgenden Beispiel sehen wir, was passiert, wenn wir versuchen, verschiedene zurückgegebene Zeichen zu verbinden. Unter Verkettung versteht man das Zusammenfügen von zwei oder mehr Werten (in den meisten Fällen wird der Begriff zum Verbinden von Zeichen oder Teilzeichenfolgen in einer Zeichenfolge verwendet).
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
  }
}
Mit der Methode charAt() haben wir die Zeichen mit den Indizes 0, 4, 9 und 10 erhalten, also die Buchstaben H, o, l und d. Wir haben dann versucht, diese Zeichen auszudrucken und zu verbinden:
System.out.println(ch1 + ch2 + ch3 + ch4);
Aber statt „Hold“ zurückzugeben, bekamen wir 391. Das liegt daran, dass die zurückgegebenen Werte keine Strings mehr sind, sondern vom Typ char . Wenn wir sie also verketten, fügt der Interpreter stattdessen ihren ASCII-Wert hinzu. H hat einen ASCII-Wert von 72, o hat einen Wert von 111, l hat einen Wert von 108 und d hat einen Wert von 100. Wenn wir sie addieren, erhalten wir 391, was im letzten Beispiel zurückgegeben wurde.

Fehler StringIndexOutOfBoundsException

Wenn wir eine Sequenznummer übergeben, die größer als die Anzahl der Zeichen in unserer Zeichenfolge ist, erhalten wir in der Konsole einen StringIndexOutOfBoundsException-Fehler. Dieser Fehler gilt auch für die Verwendung der negativen Indizierung, die in Java nicht unterstützt wird. In Programmiersprachen wie Python, die negative Indizierung unterstützen, erhalten Sie durch die Übergabe von -1 das letzte Zeichen oder den letzten Wert im Datensatz, ähnlich wie 0 immer das erste Zeichen zurückgibt. Hier ist ein Beispiel:
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
    */
  }
}
Im obigen Code haben wir Index 20 übergeben: char ch1 = Greetings.charAt(20); , was die Anzahl der Zeichen in unserer Begrüßungsvariable überschreitet , sodass wir eine Fehlermeldung erhalten haben. Sie können die auskommentierte Fehlermeldung im Codeblock oben sehen. Ebenso, wenn wir einen negativen Wert wie diesen übergeben: char ch1 = Greetings.charAt(-1); , dann erhalten wir einen ähnlichen Fehler.

Abschluss

In diesem Artikel haben wir gelernt, wie man die charAt()- Methode in Java verwendet . Wir haben gesehen, wie man Zeichen in einer Zeichenfolge basierend auf ihrer Indexnummer zurückgibt und was passiert, wenn wir diese Zeichen verketten. Wir haben auch über einige Fälle gesprochen, in denen Sie bei Verwendung der charAt()- Methode in Java eine Fehlerantwort erhalten können .
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION