JavaRush /Java блог /Random UA /Кава-брейк #115. Простий спосіб групувати об'єкти в Java....

Кава-брейк #115. Простий спосіб групувати об'єкти в Java. Метод charAt() - як його застосовувати в Java

Стаття з групи Random UA

Простий спосіб групувати об'єкти в Java

Джерело: Dev.to У цьому прикладі ми навчимося спрощувати угруповання для об'єктів Map , які містять колекції як значення. Кава-брейк #115.  Простий спосіб групувати об'єкти в Java.  Метод charAt() - як його застосовувати в Java - 1Наприклад, у нас є у нас є об'єкт Map , в якому ключ – це Integer , а значення – масив рядків:
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");
Результат:
{1=[a, b, c, c], 2=[c]}
Все, що нам потрібно зробити, це визначити стратегію угруповання. Наприклад, вже певний клас ArrayListGrouper використовує як свою стратегію ArrayList . Ми завжди можемо визначити новий Grouper , який використовуватиме інший GroupingStrateg . Тепер давайте змінимо ArrayList на HashSet , щоб елементи стали унікальними:
public class HashSetGrouper<K, V> extends Grouper<K, V> {

    public HashSetGrouper() {
        super(HashSet::new);
    }
}
Потім тестуємо:
@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);

    }
Результат:
{1=[a, b, c], 2=[c]}
Ключ 1 тепер має набір, де значення c не повторюється. Код прикладу розміщено на Github .

Метод charAt() - як його застосовувати в Java

Джерело: FreeCodeCamp Метод charAt() Java повертає значення символу char у рядку за заданим або вказаним індексом. Сьогодні ми побачимо, як використовувати метод charAt() , починаючи з синтаксису, а потім розглянемо кілька прикладів і варіантів використання.

Як використовувати метод Java charAt()

Ось як виглядає синтаксис методу charAt() :
public char charAt(int index)
Зауважте, що символи, що повертаються з рядка за допомогою методу charAt() , мають тип даних char . Трохи пізніше ми дізнаємося, як це впливає на конкатенацію значень, що повертаються. А тепер давайте подивимося на приклади:
public class Main {
  public static void main(String[] args) {

    String greetings = "Hello World";

    System.out.println(greetings.charAt(0));
    // H
  }
}
У наведеному вище коді наш рядок, що зберігається в змінній з ім'ям greetings , говорить "Hello World". Ми використовували метод charAt() , щоб отримати символ з індексом 0. Цим символом є буква H. Перший символ завжди матиме індекс 0, другий індекс 1 і так далі. Простір між підрядками також вважається індексом. У наступному прикладі ми побачимо, що відбувається, коли ми намагаємось поєднати різні повернені символи. Конкатенація означає з'єднання двох або більше значень разом (у більшості випадків цей термін використовується для з'єднання символів або рядків).
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
  }
}
Використовуючи метод charAt() , ми отримали символи з індексами 0, 4, 9 та 10, які є буквами H, o, l та d відповідно. Потім ми спробували надрукувати та поєднати ці символи:
System.out.println(ch1 + ch2 + ch3 + ch4);
Але замість того, щоб повернути нам “Hold”, ми отримали 391. Це сталося через те, що значення, що повертаються, більше не є рядками, а мають тип даних char . Тому, коли ми їх об'єднуємо, інтерпретатор натомість додає їх ASCII значення. H має значення ASCII 72, має значення 111, l має значення 108, а d має значення 100. Якщо ми складемо їх разом, то отримаємо 391, яке було повернено в останньому прикладі.

Помилка StringIndexOutOfBoundsException

Коли ми надаємо порядковий номер, який перевищує кількість символів у нашому рядку, ми отримуємо в консолі помилку StringIndexOutOfBoundsException. Ця помилка також стосується використання негативної індексації, яка не підтримується Java. У таких мовах програмування, як Python, які підтримують негативне індексування, передача -1 дасть вам останній символ або значення набору даних, аналогічно тому, як 0 завжди повертає перший символ. Ось приклад:
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
    */
  }
}
У наведеному вище коді ми передали індекс 20: char ch1 = greetings.charAt (20); , що перевищує кількість символів у нашій змінній greetings , тому отримали помилку. Ви можете побачити повідомлення про помилку, закоментоване у блоці коду вище. Так само, якщо ми передамо негативне значення, подібне до цього: char ch1 = greetings.charAt(-1); , Отримаємо аналогічну помилку.

Висновок

У цій статті ми дізналися, як використовувати метод charAt() у Java. Ми побачабо, як повертати символи в рядку на основі їхнього порядкового номера і що відбувається, коли ми об'єднуємо ці символи. Також ми говорабо про деякі випадки, коли можна отримати відповідь про помилку під час використання методу charAt() у Java.
Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ