JavaRush /Blog Java /Random-MS /Coffee break #115. Cara mudah untuk mengumpulkan objek da...

Coffee break #115. Cara mudah untuk mengumpulkan objek dalam Java. kaedah charAt() - cara menggunakannya dalam Java

Diterbitkan dalam kumpulan

Cara mudah untuk mengumpulkan objek dalam Java

Sumber: Dev.to Dalam contoh ini, kita akan belajar cara memudahkan pengumpulan untuk objek Peta yang mengandungi koleksi sebagai nilai. Coffee break #115.  Cara mudah untuk mengumpulkan objek dalam Java.  kaedah charAt() - cara menggunakannya dalam Java - 1Sebagai contoh, kami mempunyai objek Peta dengan kuncinya ialah Integer dan nilainya ialah tatasusunan rentetan:
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");
Keputusan:
{1=[a, b, c, c], 2=[c]}
Apa yang perlu kita lakukan ialah menentukan strategi pengelompokan. Sebagai contoh, kelas ArrayListGrouper yang telah ditetapkan menggunakan ArrayList sebagai strateginya . Kami sentiasa boleh menentukan Kerapu baharu yang akan menggunakan GroupingStrateg yang berbeza . Sekarang mari kita tukar ArrayList kepada HashSet untuk menjadikan elemen unik:
public class HashSetGrouper<K, V> extends Grouper<K, V> {

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

    }
Keputusan:
{1=[a, b, c], 2=[c]}
Kunci 1 kini mempunyai set di mana nilai c tidak diulang. Kod contoh disiarkan pada Github .

kaedah charAt() - cara menggunakannya dalam Java

Sumber: FreeCodeCamp Kaedah charAt() dalam Java mengembalikan nilai aksara char dalam rentetan pada indeks tertentu atau tertentu. Hari ini kita akan melihat cara menggunakan kaedah charAt() , bermula dengan sintaksnya, dan kemudian melihat beberapa contoh dan kes penggunaan.

Cara menggunakan kaedah Java charAt().

Begini rupa sintaks untuk kaedah charAt() :
public char charAt(int index)
Ambil perhatian bahawa aksara yang dikembalikan daripada rentetan menggunakan kaedah charAt() adalah daripada jenis data char . Kita akan melihat bagaimana ini mempengaruhi gabungan nilai pulangan dalam seketika. Sekarang mari kita lihat contoh:
public class Main {
  public static void main(String[] args) {

    String greetings = "Hello World";

    System.out.println(greetings.charAt(0));
    // H
  }
}
Dalam kod di atas, rentetan kami, yang disimpan dalam pembolehubah yang dipanggil salam , menyatakan "Hello World". Kami menggunakan kaedah charAt() untuk mendapatkan aksara pada indeks 0. Aksara itu ialah huruf H. Aksara pertama akan sentiasa berada pada indeks 0, aksara kedua pada indeks 1 dan seterusnya. Ruang antara subrentetan juga dianggap sebagai indeks. Dalam contoh berikut, kita akan melihat apa yang berlaku apabila kita cuba menyambungkan aksara yang dikembalikan yang berbeza. Penggabungan bermaksud menggabungkan dua atau lebih nilai bersama-sama (dalam kebanyakan kes, istilah ini digunakan untuk menyambung aksara atau subrentetan dalam rentetan).
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
  }
}
Menggunakan kaedah charAt() , kami mendapat aksara dengan indeks 0, 4, 9 dan 10, iaitu huruf H, o, l dan d masing-masing. Kami kemudian cuba mencetak dan menyambungkan aksara ini:
System.out.println(ch1 + ch2 + ch3 + ch4);
Tetapi bukannya mengembalikan "Tahan", kami mendapat 391. Ini kerana nilai yang dikembalikan bukan lagi rentetan, tetapi jenis char . Oleh itu, apabila kita menggabungkannya, penterjemah menambah nilai ASCII mereka sebaliknya. H mempunyai nilai ASCII 72, o mempunyai nilai 111, l mempunyai nilai 108, dan d mempunyai nilai 100. Jika kita menambahnya bersama-sama, kita mendapat 391, yang dikembalikan dalam contoh terakhir.

Ralat StringIndexOutOfBoundsException

Apabila kami menghantar nombor jujukan yang lebih besar daripada bilangan aksara dalam rentetan kami, kami mendapat ralat StringIndexOutOfBoundsException dalam konsol. Ralat ini juga digunakan untuk penggunaan pengindeksan negatif, yang tidak disokong dalam Java. Dalam bahasa pengaturcaraan seperti Python yang menyokong pengindeksan negatif, lulus -1 akan memberikan anda aksara atau nilai terakhir dalam set data, sama seperti cara 0 sentiasa mengembalikan aksara pertama. Berikut ialah contoh:
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
    */
  }
}
Dalam kod di atas kita telah melepasi indeks 20: char ch1 = greetings.charAt(20); , yang melebihi bilangan aksara dalam pembolehubah salam kami , jadi kami mendapat ralat. Anda boleh melihat mesej ralat yang diulas dalam blok kod di atas. Begitu juga, jika kita melepasi nilai negatif seperti ini: char ch1 = greetings.charAt(-1); , maka kita mendapat ralat yang serupa.

Kesimpulan

Dalam artikel ini, kami mempelajari cara menggunakan kaedah charAt() dalam Java. Kami melihat cara untuk mengembalikan aksara dalam rentetan berdasarkan nombor indeksnya dan perkara yang berlaku apabila kami menggabungkan aksara tersebut. Kami juga membincangkan beberapa kes di mana anda boleh mendapat respons ralat apabila menggunakan kaedah charAt() dalam Java.
Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION