5.5 문자열(String) 타입
: 자바의 문자열을 String 객체로 생성됨 (= 변수에 객체의 번지가 대입됨)
- Java는 문자열 리터럴이 동일하다면 String 객체 공유하도록 설계됨
String name1 = "홍길동";
String name2 = "홍길동";
//이 경우 동일한 String 객체를 공유
* new 연산자
: 새로운 객체를 만드는 객체 생성 연산자
- 이 경우 서로 다른 String 객체의 번지를 갖게 됨
String name1 = new String("홍길동");
String name2 = new String("홍길동");
//서로 다른 String 객체 번지를 갖게 됨
* 메소드들
equals() | 내부 문자열 비교 | * boolean 변수명 = 원본문자열.equals(비교문자열); //대소문자 구분 String hobby = ""; if (hobby.equals("")){ }; --> 변수가 빈 문자열 참조하는지 |
charAt() | 문자열에서 특정 위치의 문자 얻기 | * char 변수명 = 원본문자열.charAt(인덱스); |
length() | 문자열에서 문자의 개수 얻기 | * int 변수명 = 원본문자열.length(); |
replace() | 특정 문자열을 다른 문자열로 대체 | * String 변수명 = 원본문자열.replace("찾을문자열", "바꿀문자열"); // 원본 문자열 그대로 두고 새로운 문자열 리턴 // 찾을 문자열을 전체 String에서 찾고 바꿔줌 |
substring() | 특정 위치의 문자열 잘라오기 | * String 변수명 = 원본문자열.substring(시작 인덱스, (끝 인덱스) ); // 끝 인덱스는 생략 가능 |
indexOf() | 문자열에서 특정 문자열의 위치 찾기 | * int 변수명 = 원본문자열.indexOf("특정 문자열"); // 포함되지 않은 경우 -1 리턴 |
contains() | 문자열에 특정 문자열 단순 포함 여부 | * boolean 변수명 = 원본문자열.contains("특정문자열"); |
split() | 구분자를 기준으로 문자열 분리하기 | * String[ ] 배열명 = 원본문자열.split("구분자"); |
5.6 배열(Array) 타입
- 배열은 힙 영역에 있고, 배열의 주소가 스택 영역의 변수에 담김 (c는 stack에 직접 넣음)
* 특징
1) 배열은 같은 타입의 값만 관리함
2) 배열의 길이는 늘리거나 줄일 수 없음
* 배열 변수 선언 방법
int[ ] 변수명 = null; 변수명 = new int[길이]; |
int[ ] 변수명 = null; 변수명 = new int[ ] {1, 2, 3}; |
int[ ] 변수명 = {1, 2, 3}; |
//new 연산자 : 배열 항목 타입 따라 기본 타입 = 0, 0.0, false 참조 타입 = null 초기화 |
int[] 변수명; 변수명 = {1, 2, 3}; --> 컴파일 에러 *배열 변수 선언 시점과 값 목록 대입 시점이 같거나 new 사용해야 함 |
//new 연산자 : 해당 길이의 배열을 생성하고 배열의 번지를 리턴
//배열 생성 후 특정 인덱스 항목을 새로운 값으로 변경하는 방법은 동일 ( 변수[인덱스] = 값; )
//메소드의 매개변수가 배열 타입일 때
void printItem(int[] scores){ }
printItem(new int[] {10, 20, 30}); //올바른 메소드 호출
printItem({10, 20, 30}); // 잘못된 메소드 호출
'언어 > java' 카테고리의 다른 글
[Java] 6. 클래스 (2) - 5~7 (0) | 2025.03.22 |
---|---|
[Java] 6. 클래스 (1) 1~4 (0) | 2025.03.22 |
[Java] 5. 참조 타입 (3) - 7~10 (2) | 2025.03.16 |
[Java] 5. 참조 타입 (1) - 1~4 (0) | 2025.03.16 |