본문 바로가기
기초 및 언어/▶ Java&JSP

27. 패키지 - String

by 류딩이 2025. 8. 22.

📌 자바 String 클래스 메서드

String 클래스는 불변(immutable) 객체로, 한 번 생성된 문자열은 변경되지 않습니다.
문자열을 다루는 다양한 메서드를 제공하며, 객체 지향적인 특징 때문에 Object 클래스의 메서드도 오버라이딩해서 사용

 


1. String 객체 생성 방식

객체 생성방식 2가지

1. new 키워드이용 : 같은 문자가 들어가도 두 문자열의 주소가 다름

2. 리터럴 이용 : 같은 문자가 들어가면 같은 주소를 사용

// 방식 1: new 키워드 이용 (항상 새로운 객체 생성)
String s1 = new String("Hello");
String s2 = new String("Hello");
System.out.println(s1 == s2); // false (주소 다름)

// 방식 2: 리터럴 이용 (String Pool 공유)
String s3 = "Hello";
String s4 = "Hello";
System.out.println(s3 == s4); // true (같은 객체 참조)

 

👉 따라서 문자열 비교 시 == (주소 비교) 가 아닌, 반드시 .equals() (값 비교) 를 사용해야 합니다.

 

 


2. String 주요 메서드 정리

(1) 문자열 출력 — toString()

  • Object의 toString()을 오버라이딩하여 주소값이 아닌 문자열 자체를 반환
String s = "Have a Nice Day";
System.out.println(s.toString()); // Have a Nice Day

 

(2) 문자열 길이 — length()

  • 문자열의 글자 개수를 반환
System.out.println(s.length()); // 15

 

 

(3) 문자열 비교

 

  • equals() → 완전히 같은지 비교 (대소문자 구분 O)
  • equalsIgnoreCase() → 대소문자 무시하고 비교
String a = "Hello";
String b = "hello";

System.out.println(a.equals(b));           // false (대소문자 구분 O)
System.out.println(a.equalsIgnoreCase(b)); // true  (대소문자 구분 X)

 

 

 

(4) 사전순 비교 — compareTo()

 

  • 0 → 같음
  • 음수 → 앞에 옴
  • 양수 → 뒤에 옴

 

String a = "Nice";
String b = "Day";

System.out.println(a.compareTo(b));           // 양수 (a가 b보다 뒤에 있음)
System.out.println(a.compareToIgnoreCase(b)); // 대소문자 구분 X

 

 

(5) 문자열 연결 — concat()

  • 문자열을 이어붙임
System.out.println(a.concat(" Java")); // Nice Java

 

 

(6) 특정 문자 위치 찾기 — indexOf(), lastIndexOf()

  • 존재하지 않으면 -1 반환
String s = "Have a Nice Day";

System.out.println(s.indexOf("Nice"));   // 7 (앞에서부터 탐색)
System.out.println(s.lastIndexOf("a"));  // 13 (뒤에서부터 탐색)

 

 

(7) 공백 제거 — trim()

  • 앞뒤 공백 제거
String s = "   abc  DE  F g h ";
System.out.println(s.length());        // 18
System.out.println(s.trim().length()); // 14

 

 

(8) 대소문자 변환

System.out.println(s.toUpperCase()); // 대문자 변환
System.out.println(s.toLowerCase()); // 소문자 변환

 

 

9) 포함 여부 확인 — contains()

  • 대소문자 구분한다.
System.out.println(s.contains("nice")); // false (대소문자 구분)

 

 

(10) 특정 위치 문자 추출 — charAt()

System.out.println(s.charAt(3)); // v

 

 

(11) 문자열 자르기 — substring()

System.out.println(s.substring(5));    // "a Nice Day" (5번째부터 끝까지)
System.out.println(s.substring(5, 9)); // "a Ni" (5번째 ~ 9번째 앞까지)

 

 

(12) 파일명, 확장자 분리

String fullName = "Hello.java";

int pos = fullName.indexOf(".");
String fileName = fullName.substring(0, pos);  // Hello
String ext = fullName.substring(pos + 1);      // java

System.out.println("파일명: " + fileName);
System.out.println("확장자: " + ext);

 

 


3. 핵심 정리

메서드 설명
equals() 문자열 값 비교 (대소문자 구분 O)
equalsIgnoreCase() 문자열 값 비교 (대소문자 구분 X)
compareTo() 사전순 비교 (대소문자 구분 O)
compareToIgnoreCase() 사전순 비교 (대소문자 구분 X)
concat() 문자열 이어붙이기
indexOf(), lastIndexOf() 특정 문자/문자열 위치 찾기
trim() 문자열 앞뒤 공백 제거
toUpperCase(), toLowerCase() 대소문자 변환
contains() 특정 문자열 포함 여부
charAt() 특정 위치 문자 가져오기
substring() 문자열 자르기

 

 


 

'기초 및 언어 > ▶ Java&JSP' 카테고리의 다른 글

29. Generic  (1) 2025.08.22
28. Calendar, Date, SimpleDataFormat  (0) 2025.08.22
26. 패키지 - Object  (0) 2025.08.22
25. 예외 처리(try ~ catch ~ finally), throw, Exception  (0) 2025.08.20
24. 익명클래스  (3) 2025.08.20