Рубрики
Без рубрики

Массив строк Java

Массив строк Java, объявление массива строк в java, преобразование массива в строку java, преобразование строки в массив java, сортировка массива строк java, инициализация массива строк java, строка массива java, преобразование массива строк в список, примеры программ массива строк java.

Автор оригинала: Pankaj Kumar.

Массив строк Java используется для хранения фиксированного количества строк. Строка массив очень распространен в простых java-программах , особенно среди новичков в java и для тестирования некоторых конкретных сценариев. Даже основной метод java аргумент является строковым массивом – public static void main(String[] args) . Поэтому сегодня мы рассмотрим различные аспекты массива строк java на примерах программ.

  • Массив строк Java – это в основном массив объектов.
  • Существует два способа объявления массива строк – объявление без размера и объявление с размером.
  • Существует два способа инициализации массива строк – во время объявления, заполнение значений после объявления.
  • Мы можем выполнять различные виды обработки строкового массива, такие как итерация, сортировка, поиск и т.д.

Давайте теперь рассмотрим примеры программ с массивом строк java.

Объявление массива строк Java

Ниже фрагмент кода показывает различные способы объявления массива строк в java.

String[] strArray; //declare without size

String[] strArray1 = new String[3]; //declare with size

Обратите внимание, что мы также можем записать массив строк как String strArray [] , но выше показано, что это стандартный и рекомендуемый способ. Также в приведенном выше коде strArray равно null , тогда как strArray1 значение равно [null, null, null] .

Инициализация массива строк Java

Давайте рассмотрим различные способы инициализации массива строк в java.

//inline initialization
String[] strArray1 = new String[] {"A","B","C"};
String[] strArray2 = {"A","B","C"}; 

//initialization after declaration
String[] strArray3 = new String[3];
strArray3[0] = "A";
strArray3[1] = "B";
strArray3[2] = "C";

Все три строковых массива будут иметь одинаковые значения. Однако, если вы вызовете для них метод equals , он вернет значение false.

System.out.println(strArray1.equals(strArray2)); // false
System.out.println(Arrays.toString(strArray1).equals(Arrays.toString(strArray2)));// true

Причина в том, что массив-это объекты, а класс объектов реализует метод equals (), как показано ниже.

public boolean equals(Object obj) {
        return (this == obj);
    }

Второе утверждение верно, потому что при преобразовании в строку их значения совпадают, а реализация метода String class equals() проверяет наличие значений. Для получения более подробной информации, пожалуйста, ознакомьтесь с документацией API класса строк.

Итерация по массиву строк java

Мы можем перебирать массив строк, используя java для цикла или java для цикла.

String[] strArray2 = {"A","B","C"}; 
for (int i = 0; i < strArray2.length; i++) {
	System.out.print(strArray2[i]);
}

for (String str : strArray2) {
	System.out.print(str);
}

Поиск строки в массиве строк

Мы можем использовать цикл for для поиска строки в массиве, ниже приведен простой пример для этого.

package com.journaldev.stringarray;

public class JavaStringArrayExample {

	public static void main(String[] args) {
		String[] strArray = { "A", "B", "C" };
		
		boolean found = false;
		int index = 0;
		String s = "B";
		for (int i = 0; i < strArray.length; i++) {
			if(s.equals(strArray[i])) {
				index = i; found = true; break;
			}
		}
		if(found)
			System.out.println(s +" found at index "+index);
		else
			System.out.println(s +" not found in the array");
		
	}

}

Обратите внимание на использование ключевого слова break, чтобы выйти из цикла, как только мы нашли строку.

Сортировка массива строк Java

Мы можем реализовать наш собственный алгоритм сортировки, или мы можем использовать метод сортировки классов массивов.

String[] vowels = {"a","i","u","e","o"};
		
System.out.println("Before sorting "+Arrays.toString(vowels));

Arrays.sort(vowels);
		
System.out.println("After sorting "+Arrays.toString(vowels));

Вывод приведенного выше фрагмента кода будет:

Before sorting [a, i, u, e, o]
After sorting [a, e, i, o, u]

Обратите внимание, что строка реализует сопоставимый интерфейс, поэтому она работает для естественной сортировки. В случае, если вы хотите выполнить сортировку каким-либо другим способом, вы можете использовать Arrays.sort() перегруженный метод, передав компаратор. Узнайте об этих методах сортировки в Comparable и Comparator на java .

Преобразование строки в массив строк

Мы можем преобразовать строку в массив строк, используя метод split () . Это полезно, когда вы получаете в качестве входных данных одну строку со значениями, разделенными символом-разделителем.

String str = "a,e,i,o,u";
String[] vowels = str.split(",");
System.out.println(Arrays.toString(vowels)); //[a, e, i, o, u]

Преобразование массива строк в строку

Мы можем использовать метод Arrays.toString() для преобразования массива строк в строку. Обратите внимание, что массив не реализует метод toString () , поэтому, если вы попытаетесь получить его строковое представление, вам придется полагаться на класс Arrays или написать свой собственный пользовательский код.

String[] vowels = { "a", "e", "i", "o", "u" };
System.out.println(vowels);
System.out.println(Arrays.toString(vowels));

Результат будет таким, как показано ниже.

[Ljava.lang.String;@3d04a311
[a, e, i, o, u]

Первый вывод связан с реализацией toString() класса объектов, как показано ниже.

public String toString() {
        return getClass().getName() + "@" + Integer.toHexString(hashCode());
    }

Массив строк Java для перечисления

Мы можем получить представление списка строкового массива, используя Массивы.тоЛист() Метод. Обратите внимание, что этот список поддерживается массивом, и любая структурная модификация приведет к java.lang.Исключение UnsupportedOperationException .

String[] vowels = { "a", "e", "i", "o", "u", "a", "o" };

List vowelsList = Arrays.asList(vowels);
System.out.println("vowelsList = "+vowelsList);
//vowelsList.add("x"); //java.lang.UnsupportedOperationException

vowelsList.set(0, "x"); //allowed because no structural modification
System.out.println("vowelsList = "+vowelsList);

Это все для массива строк java.

Ссылка: Документация Oracle по массивам