Масиви рядків у Java. Одновимірні та двовимірні масиви рядків. Ініціалізація масивів рядків. Приклади розв’язку задач
Зміст
- 1. Поняття масиву рядків. Загальна форма оголошення одновимірного масиву рядків
- 2. Яким чином оголошується одновимірний масив рядків? Приклад
- 3. Двовимірний масив рядків. Загальна форма
- 4. Приклад оголошення та використання двовимірного масиву рядків
- 5. Як визначається довжина масиву рядків? Властивість length. Приклад
- 6. Як здійснюється ініціалізація одновимірного масиву? Приклад
- 7. Пошук заданого рядка в одновимірному масиві рядків. Приклад
- 8. Сортування одновимірного масиву рядків за алфавітом методом вставки. Приклад
- 9. Як здійснюється ініціалізація двовимірного масиву рядків? Приклад
- 10. Приклад підрахунку кількості входжень заданого рядка у двовимірному масиві рядків
- 11. Приклад заміни рядка у двовимірному масиві рядків
- Зв’язані теми
Пошук на інших ресурсах:
1. Поняття масиву рядків. Загальна форма оголошення одновимірного масиву рядків
Як і будь-яка мова програмування, мова програмування Java може реалізовувати масиви рядків. Будь-який рядок в Java має тип String. Одновимірний масив рядків має тип String[]. Двовимірний масив рядків має тип String[][].
Загальна форма оголошення та виділення пам’яті для одновимірного масиву рядків
String[] arrayName = new String[size];
де
- String – вбудований в Java клас, що реалізує рядок символів. Об’єкт типу String підтримує великий набір операцій, які можна переглянути тут і тут;
- arrayName – ім’я об’єкту (екземпляру) типу String. Фактично, arrayName є посиланням на об’єкт типу String;
- size – розмір масиву (кількість рядків, кількість елементів типу String).
Оголошення одновимірного масиву рядків та виділення пам’яті для нього можна реалізувати іншим чином
String[] arrayName;
arrayName = new String[size];
⇑
2. Яким чином оголошується одновимірний масив рядків? Приклад
Нижче наведено приклад оголошення та використання одновимірного масиву рядків.
// оголошення одновимірного масиву рядків String[] arrayS = new String[5]; // заповнення початковими значеннями arrayS[0] = "abcd"; arrayS[1] = "Hello"; arrayS[2] = ""; // пустий рядок arrayS[3] = "bestprog"; arrayS[4] = ";:\\+="; // комбінація "\\" замінюється на "\" // використання у виразах arrayS[4] = arrayS[1] + " " + arrayS[3]; // arrayS[4] = "Hello bestprog" arrayS[4] += ".net"; // arrayS[4] = "Hello bestprog.net"
Як видно з прикладу, робота з масивами рядків у Java є досить зручною та не потребує складних додаткових перетворень на їх обробку.
⇑
3. Двовимірний масив рядків. Загальна форма
Можливо, в деяких задачах виникне потреба в оголошенні двовимірного масиву рядків.
Загальна форма оголошення двовимірного масиву рядків наступна:
String[][] matrName = new String[n][m];
де
- matrName – ім’я об’єкту (посилання на об’єкт), що є двовимірним масивом типу String;
- n – кількість рядків у масиві matrName;
- m – кількість стовпців у масиві matrName.
Можливий також інший спосіб оголошення та виділення пам’яті для двовимірного масиву рядків:
String[][] matrName; // оголошення посилання на двовимірний масив рядків matrName = new String[n][m];
⇑
4. Приклад оголошення та використання двовимірного масиву рядків
Нижче наведено приклад оголошення та використання двовимірного масиву рядків
// оголошення двовимірного масиву рядків String[][] matrS = new String[2][3]; // заповнення масиву значеннями for (int i=0; i<matrS.length; i++) for (int j=0; j<matrS[i].length; j++) matrS[i][j] = "matrS[" + i + "][" + j + "]"; // перевірка String s; s = matrS[0][0]; // s = "matrS[0][0]" s = matrS[1][1]; // s = "matrS[1][1]"
⇑
5. Як визначається довжина масиву рядків? Властивість length. Приклад
Щоб визначити кількість рядків у масиві використовується властивість length.
Для одновимірних масивів кількість рядків n визначається так:
String[] arrayS = new String[25]; int n; n = arrayS.length;
Для двовимірних масивів кількість рядків та стовпців визначається наступним чином
// matrS - двовимірний масив рядків String[][] matrS = new String[2][3]; int n, m; n = matrS.length; // n = 2 - кількість рядків m = matrS[0].length; // m = 3 - кількість стовпців m = matrS[1].length; // m = 3
⇑
6. Як здійснюється ініціалізація одновимірного масиву? Приклад
Ініціалізація одновимірного масиву рядків така сама як ініціалізація одновимірного масиву будь-якого іншого типу.
// ініціалізація одновимірного масиву рядків String[] M = { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" }; String s; s = M[2]; // s = "Tuesday" s = M[4]; // s = "Thursday"
⇑
7. Пошук заданого рядка в одновимірному масиві рядків. Приклад
// пошук заданого рядка в масиві рядків // оголошення масиву рядків String M[] = new String[5]; String s = "May"; // рядок, який потрібно знайти boolean f_is; // заповнення масиву значеннями M[0] = "January"; M[1] = "February"; M[2] = "May"; M[3] = "October"; M[4] = "December"; // пошук рядка f_is = false; for (int i=0; i<M.length; i++) if (M[i]==s) { f_is = true; break; } // виведення результату if (f_is) System.out.println("Шуканий рядок є в масиві."); else System.out.println("Шуканого рядка немає в масиві.");
⇑
8. Сортування одновимірного масиву рядків за алфавітом методом вставки. Приклад
Для порівняння двох рядків в лексикографічному порядку у класі String розроблено метод compareTo(). Загальна форма методу наступна:
int compareTo(другий_рядок)
Метод повертає
- <0, якщо другий рядок слідує після першого рядка в лексикографічному порядку;
- =0, якщо рядки однакові;
- >0, якщо другий рядок слідує перед першим в лексикографічному порядку.
Фрагмент, що демонструє сортування масиву рядків методом вставки:
// сортування масиву рядків методом вставки String[] M = { "abc", "bde", "fgh", "abcd", "bcdef", "cdef", "fghij", "aaa" }; String s; // сортування for (int i=0; i<M.length-1; i++) for (int j=i; j>=0; j--) if (M[j].compareTo(M[j+1])>0) { // обміняти M[j] та M[j+1] місцями s = M[j]; M[j] = M[j+1]; M[j+1] = s; } // виведення результату for (int i=0; i<M.length; i++) System.out.println(M[i]);
У результаті виконання вищенаведеного коду, на екран буде виведено
aaa abc abcd bcdef bde cdef fgh fghij
⇑
9. Як здійснюється ініціалізація двовимірного масиву рядків? Приклад
Ініціалізація двовимірного масиву рядків нічим не відрізняється від ініціалізації двовимірного масиву будь-якого примітивного типу. Елементами масиву є звичайні рядки.
Нижче наведено приклад ініціалізації двовимірного масиву рядків з іменем M
// оголошення масиву M з початковою ініціалізацією String M[][] = new { { "a1", "a2", "a3" }, { "b1", "b2", "b3" }, { "a1", "c2", "a1" } }; // перевірка String s; s = M[0][1]; // s = "a2" s = M[1][0]; // s = "b1"
⇑
10. Приклад підрахунку кількості входжень заданого рядка у двовимірному масиві рядків
// обчислення кількості входжень заданого рядка у двовимірному масиві // оголошення масиву M з початковою ініціалізацією String M[][] = { { "abcd", "abc", "bcd" }, { "acd", "bcd", "abcd" }, { "abc", "bc", "cde" } }; String s = "abc"; // рядок, кількість входжень якого потрібно обчислити int k = 0; // к-сть входжень, результат for (int i=0; i<M.length; i++) for (int j=0; j<M[i].length; j++) if (M[i][j]==s) k++; // k = 2
⇑
11. Приклад заміни рядка у двовимірному масиві рядків
Задано:
- двовимірний масив рядків з іменем matrS;
- рядок, який шукається для заміни s1;
- рядок s2, який замінює рядок s1.
Розробити програму, що замінює рядок s1 в матриці matrS новим рядком s2. Фрагмент коду, що розв’язує дану задачу:
// оголошення двовимірного масиву рядків String[][] matrS = new String[2][3]; // заповнення матриці matrS довільними значеннями matrS[0][0] = "abc"; matrS[0][1] = "cba"; matrS[0][2] = "def"; matrS[1][0] = "abc"; matrS[1][1] = "fff"; matrS[1][2] = "qqq"; // заповнення значеннями рядків s1 та s2 String s1 = "abc"; // рядок, який заміняють String s2 = "mmm"; // рядок, яким заміняється рядок s1 // цикл обчислення for (int i=0; i<matrS.length; i++) for (int j=0; j<matrS[i].length; j++) if (matrS[i][j]==s1) matrS[i][j] = s2; // виведення результату for (int i=0; i<matrS.length; i++) { for (int j=0; j<matrS[i].length; j++) System.out.print(matrS[i][j] + " "); System.out.println(); }
У результаті виконання вищенаведеного коду, на екран буде виведено наступний результат:
mmm cba def mmm fff qqq