[Java] String

이주형·2023년 5월 21일
0

Java

목록 보기
8/10

📌 String

자바에서 문자열을 관리하기 위해 제공되는 클래스
" " 로 묶어준 문자열도 String 객체이다.

주요 메서드

  • equals() : 문자열 내용을 비교
String str1 = new String("안녕하세요");
String str2 = new String("안녕하세요");
        
// == 는 두 객체가 같은 객체인지를 비교하는 것이고
// equals 두 객체가 관리하는 값이 같은지를 비교하는 것이다.
if (str1 == str2) {
	System.out.println("str1과 str2는 같은 객체이다.");
} else {
	System.out.println("str1과 str2는 같은 객체가 아니다.");
}
// 서로 다른 객체이다.

if (str1.equals(str2)) {
	System.out.println("str1과 str2가 관리하는 문자열이 같다");
}
// 값을 비교하는 것이니까 같다고 나온다.

  • toUpperCase() : 소문자를 대문자로 변경
  • toLowerCase() : 대문자를 소문자로 변경
String str5 = "ABcdEF";
String str6 = str5.toUpperCase(); // str6 : ABCDEF
String str7 = str5.toLowerCase(); // str7 : abcdef

  • startsWith() : ~ 로 시작여부 검사
  • endsWith() : ~ 로 끝나는지 여부 검사
String str8 = "abcdefg";
boolean b1 = str8.startsWith("abc"); // b1 : true
boolean b2 = str8.startsWith("kkk"); // b2 : false
boolean b3 = str8.endsWith("efg"); // b3 : true
boolean b4 = str8.endsWith("kkk"); // b4 : false

  • indexOf() : 지정된 문자열의 위치를 반환한다.
String str9 = "abcdefg";
int idx1 = str9.indexOf("cde"); // idx1 : 2
int idx2 = str9.indexOf("kkk"); // idx2 : -1 (없으면 -1 반환)

  • length() : 문자열 길이 측정
String str10 = "abcdefg";
String str11 = "안녕하세요";
int a1 = str10.length(); // a1 : 7
int a2 = str11.length(); // a2 : 5

  • substring() : 문자열의 일부를 가지고 온다.
String str12 = "abcdefg";

// 순서값 2 부터 끝까지
String str13 = str12.substring(2); // str13 : cdefg

// 순서값 2 부터 5 - 1 까지
String str14 = str12.substring(2, 5); // str14 : cde

  • trim() : 좌우 공백 제거
String str15 = "     aaa     ";
System.out.printf("[%s]\n", str15); // [     aaa     ]
System.out.printf("[%s]\n", str15.trim()); // [aaa]

📌 StringBuffer

관리하는 문자열을 직접 조작할 수 있는 기능을 제공한다.

String 이 관리하는 문자열은 변경이 불가능해서 추가 변환 삭제 등의 작업을 하게 되면 새로운 문자열이 계속 생성된다.

메모리를 효율적으로 사용하기 위해 자주 변화되는 문자열은 StringBuffer 로 관리한다

// StringBuffer 생성
StringBuffer buffer1 = new StringBuffer();
StringBuffer buffer2 = new StringBuffer("문자열");

// 문자열 추가
buffer1.append(100);
buffer1.append(11.11);
buffer1.append("문자열"); // 10011.11문자열

// StringBuffer -> String
String str1 = buffer1.toString();
        
// 삽입
buffer1.insert(2, 555); // 10555011.11문자열

// 변경
// 2 ~ 5 -1까지를 동해물과 백두산으로 바꾼다.
buffer1.replace(2, 5, "동해물과 백두산"); // 10동해물과 백두산011.11문자열
        
// 삭제
// 2~10 -1까지 삭제
buffer1.delete(2, 10); // 10011.11문자열

0개의 댓글