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 |