728x90
1. String 클래스
- String 클래스는 사실 char[] 와 메서드(기능)를 결합한 것
- 즉, 문자 배열 char[] 에다가 어떠한 메서드(기능)을 결합한 형태라고 생각하면 된다.
- String 클래스는 내용을 변경할 수 없다(read only) : 읽기만 가능
String a = "a";
String b = "b";
a = a + b
이때 a 는 어떻게 될까?
a = ab 로 기존의 문자열이 바뀌는 것이 아닌
새로운 "ab" 라는 문자열이 생성 & 저장된다
2-1. 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[]) 로 변환해서 반환한다. |
2-2. String 클래스 주요 매서드 활용
//index = 012345
String str = "String";
System.out.println(str.charAt(1)); // t, 해당 인덱스의 문자 출력
System.out.println(str.length()); // 6, 길이구하는 방식은 상수X 메서드임으로 () 가 필수
System.out.println(str.substring(1,5)); // trin
System.out.println(str.substring(3)); // ing , to 를 생략하면 시작지점부터 끝까지 출력됨
System.out.println("String".equals(str)); // true , 동일하면 true
System.out.println("Stringg".equals(str)); // false , 다르면 false
char[] charr = str.toCharArray();
for(int i=0; i<charr.length; i++) {
System.out.println("charr["+i+"] = "+charr[i]);
}
// 출력
// charr[0] = S
// charr[1] = t
// charr[2] = r
// charr[3] = i
// charr[4] = n
// charr[5] = g
3-1. Arrays 클래스의 주요 매서드
- 수학 관련 메서드를 모아놓은 Math 클래스처럼 Arrays 도 배열을 다루는 다양한 메서드를 모아놓은 클래스
메서드 | 설명 |
비교 : equals() , deepEquals() | 1차원 배열 비교는 equals , 2차원 이상의 배열 비교는 deepEquals |
출력 : toString(), deepToString() | 배열을 문자열로 출력할때는 toString() 또는 deepToString() 사용 |
복사 : copyOf(배열이름, 복사할 요소의 갯수) | 해당 배열에서 복사할 요소의 갯수만큼 복사해옴 만약 복사할 요소가 전체 배열 갯수보다 많다면, 나머지 값은 0 이 넣어짐 |
복사 : copyOfRange(배열이름, from, to) | 해당 배열에서 from 부터 to 까지 복사, 단 to 는 포함X |
정렬 : sort(배열이름) | 오름차순으로 배열 정렬됨 |
3-2. Arrays 클래스 주요 매서드 활용
- 이번 공부하면서 가장 놀랐던 sort 매서드. 사실 정렬 할 때마다 삽입정렬이니 버블정렬이니를 하지않겠지 했지만, 그래도 이렇게 편하게 하는 방법이 있다는 것에 굉장히 새로웠다.
static void Array_1() {
int[] arr = {0,1,2,3,4}; // 1차원은 equals
int[][] arr2D = {{11,12},{21,22}}; // 2차원 이상 deepEquals
System.out.println(Arrays.toString(arr));
// [0, 1, 2, 3, 4]
System.out.println(Arrays.deepToString(arr2D));
// [[11, 12], [21, 22]]
int[] arr2 = {1,2,3,4,5};
System.out.println(Arrays.equals(arr, arr2)); // false
System.out.println(Arrays.deepEquals(arr2D, arr2D)); // true
//index = 0 1 2 3 4
int[] arr3 = {10,20,30,40,50};
System.out.println(Arrays.toString(arr3));
int[] arr4 = Arrays.copyOf(arr3, arr.length);
System.out.println(Arrays.toString(arr4)); // {10,20,30,40,50}. arr3 에서 index 4번까지 복사됨
int[] arr4_1 = Arrays.copyOf(arr3, 7);
System.out.println(Arrays.toString(arr4_1)); // {10,20,30,40,50,0,0}, 배열의 전체 요소보다 많은 경우 0 이 넣어짐
int[] arr5 = Arrays.copyOfRange(arr4, 2, 4);
System.out.println(Arrays.toString(arr5)); // {30,40}, index 2부터 4까지 단 4는 포함X
int[] arr6 = {56,32,21,99,89};
System.out.println(Arrays.toString(arr6)); // [56, 32, 21, 99, 89]
Arrays.sort(arr6); // sort 메서드를 이용한 정렬
System.out.println(Arrays.toString(arr6)); // [21, 32, 56, 89, 99] 알아서 정렬해줌
}
'Java - 기본기' 카테고리의 다른 글
15. 객체 지향 언어란? 클래스와 객체(활용편) : 클래스와 객체 활용한 게임 만들기 (0) | 2021.10.19 |
---|---|
14. 객체 지향 언어란? 클래스와 객체(개념편) (0) | 2021.10.17 |
12. 2차원 배열 기초 & 활용(feat. String 값 비교하기 & 2차원 배열을 활용한 문제 만들기) (0) | 2021.10.14 |
11. String 배열의 선언과 생성, 커맨드라인에서 입력받기(feat. 가위바위보 게임) (0) | 2021.10.13 |
10. 배열 다루기 활용편 (2) : 총합, 평균, 섞기, 로또 만들기 (0) | 2021.10.11 |
댓글