초보 프로그래머가 처음으로 접하는 데이터 구조는 종종 배열입니다. 배열은 배우기가 매우 쉽기 때문입니다. 1차원 배열은 데이터가 저장될 수 있는 고정된 개수의 셀로 구성된 시퀀스입니다. Java 언어의 경우 배열에는 한 가지 유형의 데이터만 저장할 수 있습니다. 즉, Java의 배열은 동종입니다. 배열 셀에는 모든 유형의 객체가 포함될 수 있습니다. 기본 형식이든 개체이든 모든 유형의 개체를 배열에 넣을 수 있습니다. 오늘은 자바 언어의 문자열 배열, 즉 각 요소가 문자열인 배열에 대해 살펴보겠습니다. Java String Array를 선언하는 방법과 이를 사용하는 방법을 알아 보겠습니다.

문자열 배열을 선언하고 초기화하는 방법

Java에서 다양한 방법으로 문자열 배열을 선언하고 초기화할 수 있습니다 . 예를 들어 아래 코드와 같습니다.
String[] myArray = {"value1", "value2", "value3"};
여기서는 먼저 String[] 유형의 myArray 변수를 선언합니다 . 그런 다음 나중에 중괄호로 묶인 세 개의 문자열 값으로 배열을 초기화합니다. 또는 별도의 줄에서 문자열 배열 선언 및 초기화를 수행할 수 있습니다.
String[] myArray; // String array declaration
myArray = new String[] {"value1", "value2", "value3"}; // initialize the array
여기서는 첫 번째 코드 조각과 동일한 결과를 얻었지만 선언과 초기화를 두 단계로 분리했습니다. 또한 아래와 같이 크기만으로 배열을 초기화할 수도 있습니다.
String[] myArray = new String[5];
여기서는 문자열 배열을 만들고 문자열 배열 의 크기를 지정 하지만 초기 값은 제공하지 않습니다. 그런 다음 루프를 사용하거나 값을 개별적으로 지정하여 배열에 값을 할당할 수 있습니다. 모든 경우에 변수를 선언하는 동안 배열 유형(이 경우 String )을 지정해야 합니다.

문자열 배열을 반복하는 방법

Java에서는 루프를 사용하여 문자열 배열을 반복할 수 있습니다 . foreach 구성을 위한 것일 수도 있고 foreach 구성을 위한 것일 수도 있습니다. 두 가지 유형의 루프를 모두 사용하는 예를 들어 보겠습니다.
public class IterateStringArrayExample {
    public static void main(String[] args) {
        String[] stringArray = {"violin", "viola", "cello", "double bass"};

        // Using a for loop
        for (int i = 0; i < stringArray.length; i++) {
            String s = stringArray[i];
            System.out.print(s + " ");
        }
        System.out.println();

        // Using a foreach loop
        for (String s : stringArray) {
            System.out.print(s + " ");
        }
        System.out.println();
    }
}
여기서는 먼저 4개의 요소(현악기)가 있는 stringArray라는 문자열 배열을 만듭니다 . 그런 다음 두 루프 모두 문자열 배열의 각 요소를 반복하여 콘솔에 인쇄합니다. foreach 루프는 배열을 반복하는 보다 간결한 방법이지만 각 요소의 인덱스에 액세스해야 하는 경우 for 루프가 유용할 수 있습니다. 이 프로그램의 출력은 다음과 같습니다:
바이올린 비올라 첼로 더블베이스 바이올린 비올라 첼로 더블베이스

배열에 새 요소를 추가하는 방법

Java에서는 배열에 새 요소를 추가할 수 없습니다. 그러나 Java에는 특별한 트릭이 있습니다. 문자열 배열이 있고 배열 끝에 새 문자열을 추가해야 하는 경우 Arrays.copyOf 메서드를 사용하세요. 이 메서드는 하나의 추가 요소로 새 배열을 만든 다음 새 배열의 끝에 새 요소를 추가합니다. 예는 다음과 같습니다.
//add string Array and a new element
String[] oldArray = {"violin", "viola", "cello"};
String newElement = "double bass";
String[] newArray = Arrays.copyOf(oldArray, oldArray.length + 1);
newArray[newArray.length - 1] = newElement;
여기서 Arrays.copyOf 메소드는 oldArray보다 길이가 1 더 큰 newArray 라는 새 배열을 생성합니다 . 이 메소드는 newArray 의 마지막 요소에 newElement를 할당하여 newArray 의 끝에 추가합니다 . Java의 배열은 길이가 고정되어 있으므로 배열이 생성되면 배열에서 요소를 추가하거나 제거할 수 없습니다. 컬렉션에서 요소를 동적으로 추가하거나 제거하려면 다른 데이터 구조를 사용하는 것이 좋습니다. 예를 들어 List 또는 Map 입니다 .

문자열 배열의 요소를 정렬하는 방법

물론, 좋은 프로그래밍 연습에 관심이 있다면 정렬 절차에 대한 정렬 알고리즘을 작성할 수 있습니다. 그러나 실제 작업에서는 Arrays.sort() 메서드를 사용하는 것이 훨씬 쉽습니다. 예는 다음과 같습니다.
import java.util.Arrays;

public class SortStringArrayExample {
    public static void main(String[] args) {
        String[] stringArray = {"violin", "viola", "cello", "double bass"};

        // Sorting the array
        Arrays.sort(stringArray);

        // Printing the sorted array
        for (String s : stringArray) {
            System.out.print(s + " ");
        }
    }
}
여기서는 먼저 4개의 요소가 있는 stringArray라는 문자열 배열을 만듭니다 . 그런 다음 Arrays.sort() 메서드를 호출하여 배열의 요소를 오름차순으로 정렬합니다. 마지막으로 for-each 루프를 사용하여 정렬된 배열을 반복 하고 각 요소를 콘솔에 인쇄합니다. 이 프로그램의 출력은 다음과 같습니다.
첼로 콘트라베이스 비올라 바이올린
보시다시피 이 메서드는 stringArray 의 요소를 알파벳순으로 정렬했습니다.

문자열 배열에서 특정 문자열을 검색하는 방법

Java의 문자열 배열 에서 필요한 문자열을 검색하려면 루프를 사용하여 각 배열 요소를 반복하고 검색 중인 문자열 과 비교할 수 있습니다. 다음은 예제 프로그램입니다:
public class SearchString {

       public static void main(String[] args) {
           String[] stringArray = {"violin", "viola", "cello", "double bass"};
           String searchString1 = "cello";
           String searchString2 = "piano";
           search(stringArray, searchString1);
           search(stringArray, searchString2);

       }
          public static boolean search (String[] myArray, String myString){

           boolean found = false;

           // Loop through the array to search for the string
           for (String s : myArray) {
               if (s.equals(myString)) {
                   found = true;
                   break;
               }
           }

           // Print the result
           if (found) {
               System.out.println(myString + " found in the array.");
           } else {
               System.out.println(myString + " not found in the array.");
           } return found;
       }
}
여기서는 찾을 문자열과 배열이라는 두 개의 인수를 사용하여 메서드를 만듭니다. String 을 찾았는지 추적하기 위해 부울 'found'를 생성합니다 . 메소드가 반환할 발견된 값입니다. 그런 다음 for-each 루프를 사용하여 각 배열 요소를 반복합니다. 루프에서 equals() 메소드를 사용하여 현재 요소를 검색 문자열과 비교합니다. 메서드가 일치하는 항목을 찾으면 이를 true로 설정하고 break 문을 사용하여 루프를 조기에 종료합니다. 마지막으로 찾은 내용이 참인지 거짓인지에 따라 결과를 인쇄합니다. 기본 메소드 에서는 배열에 있는 문자열 과 그렇지 않은 문자열 을 사용하여 검색 메소드를 두 번 호출합니다 . 이 프로그램의 출력은 다음과 같습니다.
배열에서 첼로를 찾았습니다. 배열에서 피아노를 찾을 수 없습니다.

문자열 배열을 문자열로 변환하는 방법

String.join() 메서드를 사용하여 Java에서 문자열 배열을 문자열 로 변환 할 수 있습니다 . 이 메소드는 지정된 구분 기호로 연결된 문자열을 반환합니다. 구분 기호는 String Join() 메서드의 각 요소에 대해 복사됩니다. 예는 다음과 같습니다.
String[] myArray = {"value1", "value2", "value3"};
String joinedString = String.join(", ", myArray);
System.out.println(joinedString);
출력은 다음과 같습니다.
값1, 값2, 값3
먼저 세 개의 문자열 값을 사용하여 문자열 배열 myArray를 선언합니다 . 그런 다음 String.join() 메서드를 사용하여 모든 배열 요소를 단일 문자열로 결합합니다. String.join() 의 첫 번째 인수는 각 배열 요소 사이에 사용하려는 구분 기호입니다. 구분 기호로 ","(쉼표 뒤에 공백)을 사용했습니다. 두 번째 인수는 조인하려는 배열입니다. 마지막으로 결과 문자열을 JoinString 변수에 할당 하고 이를 콘솔에 인쇄합니다.