본문 바로가기

Study

배열, String

배열이란?

→ 같은 타입의 여러 변수를 저장할 수 있는 연속된 공간

  • 배열의 선언 방법 :: 두가지 방법 모두 지원

:: int[] age;

:: String[] name;

→ 자료타입[] 변수이름;

:: int age[];

:: String name[];

→ 자료타입 변수이름[];

  • 배열을 선언하면 (자료 타입 x 배열 길이) 만큼의 공간을 확보하고, 배열의 이름으로 해당 공간의 주소에 접근할 수 있음
  • 배열 초기화 방법
  1. int[] num = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9};
  2. int[] num = {1, 2, 3, 4, 5, 6, 7, 8, 9}; // new int{} 를 생략 가능

배열 초기화에 대한 예제 코드

class Arrays2_2 {
    public static void main(String[] args) {
        int[] num1 = new int[]{1,2,3,4,5,6,7,8,9};
        int[] num2 = {1,2,3,4,5,6,7,8,9};

        for (int i = 0; i < num1.length; i++) {
            System.out.println("num1[" +i + "] = " + num1[i]);
        }
        System.out.println();
        for (int i = 0; i < num2.length; i++) {
            System.out.println("num2[" +i + "] = " + num2[i]);
        }

        System.out.println();
        
        // 주의 할 점!
        int[] num3;
        // num3 = {1,2,3,4,5,6,7,8,9}; // Error 발생합니다.

        // 위처럼 나눠서 표현을 해야 한다면 아래처럼 초기화 하셔야 합니다.
        int[] num4;
        num4 = new int[]{1,2,3,4,5,6,7,8,9};

        for (int i = 0; i < num4.length; i++) {
            System.out.println("num4[" +i + "] = " + num4[i]);
        }
    }
}
  • 배열 출력

:: java 에서 배열 이름을 출력하면 배열의 시작 주소가 출력됨

→ (정확한 주소는 아니고 타입@주소 형태의 문자열이 출력됨)

:: 그러나 char 형 배열은 println 메서드로 출력할 경우 println 메서드의 기능 때문에 배열의 요소가 그대로 출력됨

:: 배열 출력에 대한 예제 코드

import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        int[] arr = {100, 90, 80, 70, 60, 50, 40, 30, 20, 10};
        //  배열을 가리키는 참조 변수 arr 을 출력
        System.out.println("arr = " + arr);
        // 메모리 주소와 비슷한 문자열이 출력 -> 실제 주소는 아닙니다.
        // [I@7a81197d -> [(배열을 뜻함), I(int 타입을 뜻함), @(위치를 뜻함)

        // 예외 확인 하기 - char[]
        char[] chArr = {'a', 'b', 'c', 'd'};
        System.out.println(chArr); // abcd 가 출력되는데 이는 println 메서드의 기능 때문!

        // 배열의 요소 하나씩 출력하기
        for (int i = 0; i < arr.length; i++) {
            System.out.println("arr[" + i + "] = " + arr[i]);
        }

        // Arrays.toString(배열) : 배열의 모든 요소를 문자열로 만들어서 반환한다.
        System.out.println("Arrays.toString(arr) = " + Arrays.toString(arr));
    }
}

String 배열

  • string 클래스는 기본형 처럼 사용이 가능한 참조 자료형
  • string 클래스는 내용을 변경할 수 없음
  • string 클래스의 주요 메서드

:: char charAt(int index) → 문자열에서 해당 위치(index)에 있는 문자를 반환

:: int length() → 문자열의 길이를 반환

:: String substring(int from, int to) → 문자열에서 해당 범위의 문자열을 반환(from~to, to는 포함 안됨)

:: boolean equals(Object obj) → 문자열의 내용이 같은지 확인하여 같으면 true, 다르면 false를 반환

:: char[] toCharArray() → 문자열을 문자배열(char[])로 변환해서 반환

  • String 배열의 선언과 생성

String[] name = new String[3];

:: 배열 선언 예제 코드

import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        String[] strArr = {"축구", "야구", "골프", "테니스"};
        System.out.println("Arrays.toString(strArr) = " + Arrays.toString(strArr));

        String[] strArr2 = new String[4];
        System.out.println("Arrays.toString(strArr2) = " + Arrays.toString(strArr2));
    }
}