String배열

sim·2023년 3월 3일

자바의 정석

목록 보기
12/20
  1. String 배열의 선언과 생성
  • String[] name = new String[3]; //3개의 문자열을 담을 수 있는 배열을 생성
  • 참조형 변수 기본값은 null
  • 초기화도 int배열과 동일한 방법 -> String[] name = new String[] {"Kim", "Park", "Yi"};
  1. String 클래스
  • String 클래스는 char[]와 매서드(기능)를 결합한 것
  • String 클래스는 내용을 변경할 수 없다. (read only)
  • String 클래스의 주요 메서드
    ex.
    char charAt(int index) : 문자열에서 해당 위치(index)에 있는 문자를 반환.
    int length() : 문자열의 길이를 반환.
    String substring(int from, int to) : 문자열에서 해당범위의 문자열을 반환.(to는 포함안됨)
    boolean equals(Object obj) : 문자열의 내용이 같은지 확인. 같으면 true, 다르면 false// equalsIgnoreCase() 는 대소문자 구분X
    char[] toCharArray() : 문자열을 문자배열로 변환해서 반환.
  1. 2차원 배열 : 테이블 형태의 데이터를 저장하기 위한 배열
  • 타입 [][] 변수이름;
    ex. int [][] score = new int [4][3] //4행 3열의 2차원 배열을 생성한다. int값 12개의 저장공간 마련됨.

  • 배열이름[행index][열index]

  • 초기화 : {} 한번 더 써서 행별로 구분.
    ex.

    int [][] arr = {
    	{1,2,3},
    	{4,5,6}
    };
  1. Arrays로 배열 다루기
    1) 배열의 비교와 출력
    toString() : 모든 요소를 문자열로 출력 (deeptoString() : 2차원 배열)
    ex.

    int[] arr = {0,1,2,3,4};
    int[] [] arr2D = {{11,12}, {21,22}};
    
    System.out.println(Arrays.toString(arr)); 
    // --> [0,1,2,3,4] 1차원 배열
    System.out.println(Arrays.deeptoString(arr2D));
    // --> [[11,12], [21,22]] 2차원 배열

    equals() : 두 배열에 저장된 모든 요소를 비교해서 같으면 true, 다르면 false. (deepEquals() : 다차원 배열의 비교)
    ex.

    String[][] str2D = new String[][]{{"aaa", "bbb"}, {"AAA", "BBB"}};
    String[][] str2D2 = new String[][]{{"aaa", "bbb"}, {"AAA", "BBB"}};
    System.out.println(Arrays.equals(str2D, str2D2)); 
    // --> false 다차원 배열이기 때문에)
    System.out.println(Arrays.deepEquals(str2D, str2D2));
    // --> true

    2) 배열의 복사
    copyOf() : 배열 전체 복사
    copyOfRange() : 배열의 일부 복사 (지정된 범위의 끝은 포함X)
    ex.

     int[] arr = {0,1,2,3,4}; 
     int[] arr2 = Arrays.copyOf(arr, arr.length); //-> arr2=[0,1,2,3,4]
    int[] arr3 = Arrays.copyOf(arr, 3); //-> arr3 =[0,1,2]
    int[] arr4 = Arrays.copyOf(arr, 7); //->arr4=[0,1,2,3,4,0,0]
    int[] arr5 = Arrays.copyOfRange(arr, 2, 4); //arr5=[2,3]
    int[] arr6 = Arrays.copyOfRange(arr, 0, 7); //arr7= [0,1,2,3,4,0,0]

    3) 배열의 정렬
    sort() : 배열을 정렬
    ex.

     int[]arr = {3,2,0,1,4};
     Arrays.sort(arr);
    System.out.println(Arrays.toString(arr));
    // --> [0,1,2,3,4] 오름차순 정렬
profile
sim

0개의 댓글