[작성일: 2023. 01. 30]
목차
String 배열의 선언과 생성
import java.util.Arrays;
class Ex5_1_tmp {
public static void main(String[] args) {
// index: 0 ~ 3-1, 0~2
String[] strArr = { "가위", "바위", "보" }; // 문자열 3개 배열 생성
System.out.println(Arrays.toString(strArr));
for(int i=0; i<10; i++) {
int tmp = (int)(Math.random() * 3);
System.out.println(strArr[tmp]); // 0~2
}
}
}
String 클래스
- final 클래스로 상속 불가한 클래스
- new String("~~"), "~~" 두 가지 방법으로 생성 가능하며, 둘 중에서는 "~~" 방식이 자원의 재사용으로 효율적임.
- char[]와 메서드(기능)를 결합한 것 ➡️ String class = char[] + 메서드(기능, 문자열 관련)
- String 클래스는 내용을 변경할 수 없는 불변(immutable) 클래스(Read only)
- 문자열을 다루기 위한 클래스
- 덧셈 연산자(+)를 이용한 문자열 결합은 성능이 떨어짐.
- 문자열의 결합이나 변경이 잦다면, 내용 변경이 가능한 StringBuffer 클래스 사용
메서드 | 설명 |
char charAt(int index) | 문자열에서 해당 위치(index)에 있는 문자 반환 jumin_num = "123456-7890123"; 성별은 charAt(7) // 7 |
int length() | 문자열의 길이 반환 |
boolean equlas(Object obj) | 문자열의 내용이 같은지 확인. 같으면 true, 다르면 false |
equalsIgnoreCase(str) | 대소문자 구분없이 문자열 확인 |
replace(찾을 문자열, 대체할 문자열) | 문자열 대체할 수 있음. |
String substring(int from, int to) | 문자열에서 해당 범위(from ~ to)의 문자열 반환. (to는 포함 안 됨.) jumin_num.substring(0, 6) // 123456 |
trim() | 문자열 앞 뒤에 공백 제거 |
split(나눌 문자) | 특정 문자로 앞 뒤를 나누어 반환 |
matches(정규표현식) | true of false. 문자열이 정규표현식 조건에 맞는지 체크 A-Za-z 0-9 (0~9사이인지) 가-힣 (한글인지) |
char[] toCharArray() | 문자열을 문자배열(char[])로 변환해서 반환 |
public final class String implements java.io.Serializable, Comparable {
private char[] value;
...
}
문자열의 비교
- String str = "abc"; 와 String str = new String("abc");의 비교
- 문자열은 주소비교보다는 equals()를 사용하여 내용비교를 하는 것이 적합함.
String str1 = "abc"; // 문자열 리터럴 "abc"의 주소가 str1에 저장됨
String str2 = "abc"; // 문자열 리터럴 "abc"의 주소가 str2에 저장됨
String str3 = new String("abc"); // 새로운 String 인스턴스 생성
String str4 = new String("abc"); // 새로운 String 인스턴스 생성
str1 == str2 // true
str1.equlas(str) ? true
str3 == str4 // false(객체는 같을 수 없음)
str3.equals(str4) ? true
int a = 3;
int b = 3;
a == b // true
문자열 리터럴
- 문자열 리터럴은 프로그램 실행 시 자동으로 생성됨.(constant pool에 저장->상수 저장소)
- 같은 내용의 문자열 리터럴(상수)은 하나만 만들어짐.
class Ex1 {
public static void main(String args[]) {
String s1 = "AAA";
String s2 = "AAA";
String s3 = "AAA";
String s4 = "BBB";
}
}
빈 문자열("", empty string)
- 내용이 없는 문자열
- 크기가 0인 char형 배열을 저장하는 문자열
- 크기가 0인 배열을 생성하는 것은 어느 타입이나 가능함.
- 문자(char)와 문자열(String)의 초기화
String str = ""; // str을 빈 문자열로 초기화
char c = ' '; // 공백으로 초기화
char[] chArr = new char[0]; // 길이가 0인 char 배열
int[] iArr = {}; // 길이가 0인 int
🐣 해당 게시글은 자바의 정석(남궁성 님) 영상으로 함께 공부하며 요약/정리한 글입니다.
🐣 입문 개발자가 작성한 글이므로 틀린 내용이나 오타가 있을 수 있습니다.