String
- 문자열을 다루는 참조타입
- heap 영역에 데이터 생성
문자열 생성 방법 :
1) 리터럴로 생성
- 같은 데이터면 같은 주소를 바라봄
2) new String("문자열")
- 같은 데이터라도 다른 주소로 생성
String str1 = "java";
String str2 = "java";
String str3 = new String("java");
boolean result;
result = str1 == str2;
System.out.println("str1 == str2 : "+result);
result = str1 == str3;
System.out.println("str1 == str3 : "+result);
동등비교 연산자는 참조타입에서는 주소값을 비교하기 때문에 문자열의 값을 비교하기에 적합하지 않다.
문자열의 값 비교 : 문자열변수.equals(문자열 또는 문자열변수);
result = str1.equals(str3);
System.out.println("str1.equals(str3) : "+result);
<String이 제공하는 기능들>
1. .equals() : 문자열의 값 비교(값이 같으면 true)
result = str1.equals(str3);
System.out.println("str1.equals(str3) : "+result);
2. .charAt(정수) :정수위치에 해당하는 문자 하나 추출
0부터 시작하기 때문에 원하는 위치-1을 해줘야 해당 문자 추출 가능
String str = "hello,java world!";
char strData = str.charAt(4);
System.out.println(strData);
3. .length() : 문자열의 길이를 반환
int length = str.length();
System.out.println("str의 길이 : "+length);
charAt , length 그리고 반복문을 사용하여
str에 있는 문자를 순서대로 하나씩 꺼내 콘솔에 한줄씩 출력
for(int i = 0; i < str.length(); i++) {
System.out.println(str.charAt(i));
}
4. .replace(대상문자열,치환문자열) : 대상문자열을 치환문자열로 대체합니다.
치환에 사용된 문자열은 변경하지 않고 새로운 치환된 문자열을 반환한다.
비속어 등 필터처리에 사용가능
str = "안녕하세요, java 공부를 시작해요. 나중에 javascript도 배워요.";
String star = str.replace("java", "****");
System.out.println(star);
5. .substring( [, ])
-대상문자열의 범위를 정해 범위만큼의 새로운 문자열을 반환한다.
-[, ]는 쓸수도 있고, 안쓸수도 있는 부분
1) .substring(정수1, 정수2)
- 정수1번부터 정수2번 전까지의 문자열 범위만큼 잘라
새로운 문자열을 만들어 낸다.
(정수 2번은 포함 안됨)
newStr = str.substring(11, 16);
System.out.println("str.substring(11, 16) > "+newStr);
newStr = str.substring(11, str.length()-1);
System.out.println("str.substring(11, str.length()-1) > "+newStr);
2) .substring(정수1)
- 정수1번부터 문자열 끝까지의 범위만큼 새로운 문자열을 만들어 낸다.
newStr = str.substring(11);
System.out.println("str.substring(11) > "+newStr);
String ssn = "880815-1234567";
String firstNum = ssn.substring(0, 6);
System.out.println(firstNum);
String secondNum = ssn.substring(7);
System.out.println(secondNum);
6. .indexOf(검색문자열)
- 검색문자열이 대상 문자열에 존재하는 경우 검색 문자열의 첫번째 인덱스번호를 반환
- 일치하는 문자열이 없는 경우 -1을 반환한다.
str = "hello,java world!";
int number = str.indexOf("j");
System.out.println(number);
number = str.indexOf("c");
System.out.println(number); // -1 반환
String subject = "자바 프로그래밍";
int location = subject.indexOf("프로그래밍");
System.out.println(location);
String substring = subject.substring(location);
System.out.println(substring);
location = subject.indexOf("자바");
if(location != -1) {
System.out.println("자바와 관련된 책이군요.");
}else {
System.out.println("자바와 관련 없는 책이군요.");
}
boolean result = subject.contains("자바");
if(result) {
System.out.println("자바와 관련된 책이군요.");
}else {
System.out.println("자바와 관련 없는 책이군요.");
}
7. .contains(검색문자열)
- 검색문자열이 존재하면 true, 없으면 false 반환
result = str.contains("java");
System.out.println("str.contains(\"java\") > "+result);
'Java' 카테고리의 다른 글
[Java] class, 필드, 생성자, 메소드, 오버로딩 (0) | 2024.07.31 |
---|---|
[Java] 배열, 향상된 for문, 열거 (0) | 2024.07.29 |
[Java] null, NullPointerException, 참조타입 (0) | 2024.07.27 |
[Java] Scanner, while, do-while, break, continue (2) | 2024.07.26 |
[Java] for, 이중 for문 (2) | 2024.07.25 |