🧠 개념 설명
1️⃣ String은 객체다!
자바의 문자열은 String
클래스의 객체예요."Hello"
라고 써도 사실 내부적으로 new String("Hello")
처럼 동작해요.
2️⃣ 문자열은 불변이다!String
은 한 번 만들어지면 내용이 바뀌지 않아요!
문자열을 바꾸면 기존 문자열이 수정되는 게 아니라 새로운 문자열이 생성되는 구조예요.
3️⃣ String vs StringBuilder
문자열을 자주 수정할 땐 StringBuilder
를 사용하면 성능이 훨씬 좋다!
💻 예제 1 – 문자열 선언과 출력
public class StringExample1 {
public static void main(String[] args) {
String greeting = "안녕하세요";
System.out.println(greeting);
}
}
📌 String greeting = "..."
은 자바에서 가장 흔한 선언 방식이에요.
💻 예제 2 – 문자열 비교
public class StringExample2 {
public static void main(String[] args) {
String a = "hello";
String b = "hello";
String c = new String("hello");
System.out.println(a == b); // true (리터럴 비교)
System.out.println(a == c); // false (객체 비교)
System.out.println(a.equals(c)); // true (내용 비교)
}
}
⚠️ ==
는 주소 비교, equals()
는 실제 내용 비교! 반드시 구분할 것!
💻 예제 3 – 문자열 자르기, 붙이기
public class StringExample3 {
public static void main(String[] args) {
String name = "AlphaGPT";
String sub = name.substring(0, 5); // Alpha
String upper = name.toUpperCase(); // ALPHAGPT
String joined = name + "는 똑똑하다";
System.out.println(sub);
System.out.println(upper);
System.out.println(joined);
}
}
✂️ substring
, toUpperCase
, +
연산 등 문자열은 다양한 기능 제공!
💻 예제 4 – StringBuilder 사용
public class StringBuilderExample {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder();
sb.append("Alpha");
sb.append(" ");
sb.append("is fast!");
System.out.println(sb.toString());
}
}
⚡ +
로 계속 붙이는 것보다 StringBuilder
가 더 빠르고 효율적이에요.
💡 문자열 유틸 메서드 예시
length()
: 문자열 길이charAt(i)
: i번째 문자contains("abc")
: 포함 여부replace("a", "b")
: 치환trim()
: 앞뒤 공백 제거split(",")
: 분리하기
🧠 정리 한 줄 요약
자바에서 문자열은 객체이며 불변이다!
비교는 equals
, 수정은 StringBuilder
, 활용은 무한대!