본문 바로가기
내일배움캠프(Sparta)/Java Handbook

[Java Handbook] Part 4-2

by mmm- 2023. 9. 12.

1. String 클래스

String 클래스

: char[]와 메서드를 결합한 것

 

  • 기본형처럼 사용이 가능한 참조형
String str = "happiness";
String str = new String("happiness");

 

  • 내용 변경 불가
String name = "choi";
String firstName = "wb";
name = name + firstName;

내용 변경이 불가능하기 때문에 위와 같이 코드를 작성하게 되면 아래의 사진처럼 기존에 있던 name과 상관없이 새로운 name이 만들어진다.

 

 

String 클래스의 주요 메서드

메서드 설명
char charAt(int index) 문자열에서 해당하는 위치에 있는 문자를 반환
int length() 문자열의 길이 반환
String substring(int from, int to) 문자열에서 해당 범위(from~to)의 문자열을 반환 (to는 미포함)
boolean equals(Object obj) 문자열의 내용이 같은지 확인 후 같으면 true, 같지 않으면 false
char[] toCharArray() 문자열을 문자배열(char[])로 변환해서 반환
import java.util.Arrays;

public class Arrays4_1 {
    public static void main(String[] args) {
        String str = "ABCDEFG";
        char ch = str.charAt(3);
        System.out.println("ch = " + ch); // ch = D

        String str2 = str.substring(1, 4);
        System.out.println("str2 = " + str2); // str2 = BCD

        String str3 = str.substring(1);
        System.out.println("str3 = " + str3); // str3 = BCDEFG

        String str4 = str.substring(1, str.length());
        System.out.println("str4 = " + str4); // str4 = BCDEFG

        char[] chArr = str.toCharArray();
        System.out.println("Arrays.toString(chArr) = " + Arrays.toString(chArr));
    }
}

 

String 배열의 생성과 선언

String[] name = new String[3];
  • 3개의 문자열을 담을 수 있는 배열 생성
  • 참조형이기 때문에 기본값 null로 초기화
import java.util.Arrays;

public class Arrays4_2 {
    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(strArr) = " + Arrays.toString(strArr2));
    }
}

2. 2차원 배열

2차원 배열

: 테이블 형태의 데이터를 저장하기 위한 배열

 

2차원 배열의 선언과 생성

int[][] score = new int[4][3];

→ 4행 3열의 2차원 배열 score 생성

 

2차원 배열의 초기화

import java.util.Arrays;

class Arrays5_1 {
    public static void main(String[] args) {
        int[][] score = {
                {88, 35, 100},
                {84, 60, 55},
                {100, 99, 72},
                {33, 54, 77}
        };

        //길이 확인하기
        System.out.println("score.length = " + score.length);
        System.out.println("score[0].length = " + score[0].length);

        System.out.println();
        // 출력 예 1 : Arrays.toString()
        System.out.println("Arrays.toString()");
        System.out.println("Arrays.toString(score[0]) = " + Arrays.toString(score[0]));
        System.out.println("Arrays.toString(score[1]) = " + Arrays.toString(score[1]));
        System.out.println("Arrays.toString(score[2]) = " + Arrays.toString(score[2]));
        System.out.println("Arrays.toString(score[3]) = " + Arrays.toString(score[3]));

        System.out.println();
        // 출력 예 2 : for
        System.out.println("for");
        for (int i = 0; i < score.length; i++) {
            for (int j = 0; j < score[i].length; j++) {
                System.out.println("score[" + i + "][" + j + "] = " + score[i][j]);
            }
            System.out.println();
        }

        System.out.println();
        // 출력 예 3 : 향상된 for
        System.out.println("향상된 for");
        for (int[] ints : score) {
            for (int it : ints) {
                System.out.println("anInt = " + it);
            }
            System.out.println();
        }
    }
}

3. 배열 문자열 비교와 출력

equals()

: 문자열 비교하는 메서드

 

toString()

: String 형으로 형변환 해주는 메서드

import java.util.Arrays;

public class Arrays6_1 {
    public static void main(String[] args) {
        int[] num = {0, 1, 2};
        int[][] score = {
                {88, 35, 100},
                {84, 60, 55},
                {100, 99, 72},
                {33, 54, 77}
        };

        System.out.println("Arrays.toString(num) = " + Arrays.toString(num)); // 1차원 배열에 있는 정수들 문자열로 형변환
        System.out.println("Arrays.deepToString(score) = " + Arrays.deepToString(score)); // 다차원 배열에 있는 정수들 문자열로 형변환
        System.out.println();

        String[][] strArr1 = {
                {"AAA","BBB","CCC"},
                {"aaa","bbb","ccc"},
        };
        String[][] strArr2 = {
                {"AAA","BBB","CCC"},
                {"aaa","bbb","ccc"},
        };

        // 1차원 비교에는 equals
        System.out.println("Arrays.equals(strArr1[0], strArr2[0]) = " + Arrays.equals(strArr1[0], strArr2[0])); // true
        System.out.println("Arrays.equals(strArr1[1], strArr2[0]) = " + Arrays.equals(strArr1[1], strArr2[0])); // false

        System.out.println("Arrays.equals(strArr1, strArr2) = " + Arrays.equals(strArr1, strArr2)); // false

        System.out.println();
        // 다차원 비교에는 deepEquals
        System.out.println("Arrays.deepEquals(strArr1, strArr2) = " + Arrays.deepEquals(strArr1, strArr2)); // true
    }
}

4. 배열 복사

copyOf()

: 배열의 전체 요소를 복사하여 새로운 배열을 만드는 메서드

 

copyOfRange()

: 배열의 일부 요소를 복사하여 새로운 배열을 만드는 메서드

  • 시작인덱스와 끝 인덱스를 지정하여 복사할 요소의 범위를 정할 수 있음
import java.util.Arrays;

class Arrays6_2 {
    public static void main(String[] args) {
        int[] arr = {0,1,2,3,4};
        System.out.println("Arrays.toString(arr) = " + Arrays.toString(arr));

        System.out.println();
        // copyOf
        int[] arr2 = Arrays.copyOf(arr, arr.length);
        System.out.println("Arrays.toString(arr2) = " + Arrays.toString(arr2));
        int[] arr3 = Arrays.copyOf(arr, 3);
        System.out.println("Arrays.toString(arr3) = " + Arrays.toString(arr3));
        int[] arr4 = Arrays.copyOf(arr, 7); // 범위가 넘어가는 복사는 초기화값이 들어감
        System.out.println("Arrays.toString(arr4) = " + Arrays.toString(arr4));

        System.out.println();
        // copyOfRange
        int[] arr5 = Arrays.copyOfRange(arr, 2, 4);
        System.out.println("Arrays.toString(arr5) = " + Arrays.toString(arr5));
        int[] arr6 = Arrays.copyOfRange(arr, 0, 7);// 범위가 넘어가는 복사는 초기화값이 들어감
        System.out.println("Arrays.toString(arr6) = " + Arrays.toString(arr6));
    }
}

5. 배열 정렬

sort()

: 배열을 정렬하는 데 사용되는 메서드

import java.util.Arrays;

class Arrays6_3 {
    public static void main(String[] args) {
        int[] arr = {3, 1, 8, 5, 9, 2, 10, 7, 6, 4};
        System.out.println("Arrays.toString(arr) = " + Arrays.toString(arr)); // Arrays.toString(arr) = [3, 1, 8, 5, 9, 2, 10, 7, 6, 4]
        System.out.println();

        Arrays.sort(arr); // 오름차순으로 정렬
        System.out.println("sort");
        System.out.println("Arrays.toString(arr) = " + Arrays.toString(arr)); // Arrays.toString(arr) = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    }
}

'내일배움캠프(Sparta) > Java Handbook' 카테고리의 다른 글

[Java Handbook] Part 5-2  (0) 2023.09.13
[Java Handbook] Part 5-1  (0) 2023.09.12
[Java Handbook] Part 4-1  (0) 2023.09.12
[Java Handbook] Part 3-2  (0) 2023.09.12
[Java Handbook] Part 3-1  (0) 2023.09.12