<배열선언> 자료형[] 배열명; -> 현재 stack 메모리에 위치 ----------------------------------------------- int[] arr;
<배열 할당> new 자료형[배열크기]; --------------------------------------------------------------- arr = new int[3]; -> heap 메모리에 방이 생성되고, 배열명에는 값이 아닌 첫번째 방의 주소값이 저장된다. 즉, 배열명 출력시 주소값이 출력되고, 배열명[인덱스] 출력시 값이 출력
<선언 및 할당> ----------------------------------------------- int[] arr = new int[3];
<인덱스를 이용한 초기화> 배열명[인덱스] = 값; ----------------------------------------------- arr[0] = 1; arr[1] = 2;
<for문을 이용한 초기화> ----------------------------------------------- for(int i = 0; i < arr.length; i++) { arr[i] = i; } -> 초기화 할 값이 일정한 규칙이 있어야 가능
<선언과 동시에 초기화> 자료형 배열명 = new 자료형[]{} //new 자료형[] 생략 가능. ------------------------------------------------------ int[] arr = {1, 2, 3, 4, 5};
=>
① int[] arr 선언 -> stack 메모리에 생성
② new 연산자를 통하여 객체 생성하면 heap 메모리에 공간이 할당
③ 초기화 전에는 각 index 공간에는 자료형의 기본값들이 저장
④ stack 메모리의 arr의 안에는 값이 아닌 heap메모리에 있는 객체의 첫번째 방 주소값이 저장되어 있음
int[] arr1 = new int[3]; int[] arr2 = arr1;
int[] arr1 = new int[3]; // arr1이 초기화 했다고 가정 int[] arr2 = new int[3];
<for문을 이용한 복사> ------------------------------------------------- for(int i = 0; i < arr1.length; i++) { arr2[i] = arr1[i]; }
<System을 이용한 복사> System.arraycopy(원본, 복사시작점, 복사본, 입력시작점, 복사크기); -------------------------------------------------------------- System.arraycopy(arr1, 0, arr2, 0, arr1.length);
<Arrays 클래스를 이용한 복사> Arrays.copyOf(원본, 복사크기) ------------------------------------------------- arr2 = Arrays.copyOf(arr1, arr1.length);
String명.charAt(인덱스) : 문자열의 인덱스번호 값 출력(0부터시작) ---------------------------------------------------------- str = "abcde"; // 01234가 각 알파벳 인덱스 번호 str.charAt(2) -> 'c'
Arrays.sort(배열명) : 값들의 오름차순 정렬 ---------------------------------------------------------- arr = { 2, 4, 1, 3, 5 }; Arrays.sort(arr) -> { 1, 2, 3, 4, 5 }
Arrays.toString(배열명) : 배열의 모든 값 출력 ---------------------------------------------------------- arr = { 2, 4, 1, 3, 5 }; System.out.println(Arrays.toString(arr)); -> [1, 2, 3, 4, 5]
문자열.length() : 문자 길이 반환, 배열명.length : 배열의 길이 반환 --------------------------------------------------------------------- String str1 = "abc"; / String[] str2 = {"abc", "def", "ghi", "jkl"}; str1.length() -> 3 / str2.length -> 4
문자열.substring(num1, num2) : 문자열의 num1부터 num2-1에 해당하는 문자 반환 ----------------------------------------------------------------------- str = "abcdefgh"; str.substring(1, 4); -> "bcd"
String str = new String(배열명) : char[] -> String ----------------------------------------------------- char[] ch = {'a', 'b', 'c', 'd'}; String str = new String(ch) -> str = "abcd"
char[] 배열명 = 문자열.toCharArray() : String -> char[] -------------------------------------------------------------- str = "abcd" char[] ch = str.toCharArray() -> ch = {'a', 'b', 'c', 'd'}
문자열.replace(문자1, 문자2) : 문자1을 문자2로 바꾼다. 문자2에 ""를 넣으면 삭제가능. ---------------------------------------------------------------------------- String str = "abbccc"; str = str.replace("bb", " ") -> str = "a ccc" str = str.replace(" ", "") -> str = "accc"
String[] String배열명 = String명.split("input") : 문자열을 input의 기준에 따라 구분짓고 문자열배열의 값으로 대입 -------------------------------------------------------------------- String str = "ab!c!def"; String[] strArr = str.split("!"); -> strArr = {"ab", "c", "def"} String str = "abcd"; String[] strArr = str.split(""); -> strArr = {"a", "b", "c", "d"}
문자열.repeat(숫자) : 문자열을 숫자만큼 반복하여 늘린다 ------------------------------------------------------ String str = "abc"; String newStr = str.repeat(3); -> "abcabcabc"