Java String Methods
자바에서의 문자열 메서드 (Java String Methods)
자바에서 String
클래스는 문자열을 다루는 데 사용되며, 문자열 관련 작업을 위한 다양한 메서드를 제공합니다. 문자열은
불변(immutable) 객체이기 때문에, 문자열을 변경하는 모든 작업은 새로운 문자열을 반환합니다. 자바의 String
클래스에는 문자열의 길이를 구하거나, 특정 문자를 추출하거나, 문자열을 조작하는 등 다양한 메서드가 포함되어 있습니다.
1. 문자열 생성
자바에서는 문자열을 문자열 리터럴 또는 new
키워드를 사용해 생성할 수 있습니다.
문자열 생성 예제
public class Main {
public static void main(String[] args) {
// 문자열 리터럴을 사용하여 문자열 생성
String str1 = "Hello, World!";
// new 키워드를 사용하여 문자열 생성
String str2 = new String("Hello, World!");
System.out.println(str1);
System.out.println(str2);
}
}
2. 주요 문자열 메서드
2.1 length()
: 문자열의 길이 구하기
length()
메서드는 문자열의 문자 개수를 반환합니다.
public class Main {
public static void main(String[] args) {
String str = "Hello, World!";
int length = str.length();
System.out.println("문자열의 길이: " + length); // 출력: 13
}
}
2.2 charAt(int index)
: 특정 인덱스의 문자 가져오기
charAt()
메서드는 문자열에서 특정 위치에 있는 문자를 반환합니다. 인덱스는 0부터 시작합니다.
public class Main {
public static void main(String[] args) {
String str = "Hello, World!";
char ch = str.charAt(7); // 7번째 문자: W
System.out.println("7번째 문자: " + ch); // 출력: W
}
}
2.3 substring(int beginIndex, int endIndex)
: 부분 문자열 추출
substring()
메서드는 문자열에서 일부 구간의 문자열을 추출합니다. beginIndex
부터
endIndex
전까지의 문자열을 반환합니다.
public class Main {
public static void main(String[] args) {
String str = "Hello, World!";
String substr = str.substring(7, 12); // 7번 인덱스부터 12번 인덱스 전까지 추출
System.out.println("부분 문자열: " + substr); // 출력: World
}
}
2.4 toLowerCase()
와 toUpperCase()
: 소문자/대문자 변환
toLowerCase()
메서드는 문자열을 소문자로 변환하고, toUpperCase()
메서드는 문자열을 대문자로
변환합니다.
public class Main {
public static void main(String[] args) {
String str = "Hello, World!";
String lower = str.toLowerCase();
String upper = str.toUpperCase();
System.out.println("소문자 변환: " + lower); // 출력: hello, world!
System.out.println("대문자 변환: " + upper); // 출력: HELLO, WORLD!
}
}
2.5 equals()
와 equalsIgnoreCase()
: 문자열 비교
equals()
메서드는 두 문자열의 내용이 같은지를 비교하며, 대소문자를 구분합니다. equalsIgnoreCase()
는 대소문자를
구분하지 않고 문자열을 비교합니다.
public class Main {
public static void main(String[] args) {
String str1 = "Hello";
String str2 = "hello";
boolean isEqual = str1.equals(str2); // 대소문자 구분 비교
boolean isEqualIgnoreCase = str1.equalsIgnoreCase(str2); // 대소문자 구분하지 않고 비교
System.out.println("equals() 비교: " + isEqual); // 출력: false
System.out.println("equalsIgnoreCase() 비교: " + isEqualIgnoreCase); // 출력: true
}
}
2.6 contains()
: 문자열 포함 여부 확인
contains()
메서드는 특정 문자열이 포함되어 있는지를 확인합니다. 포함되어 있으면 true
, 그렇지 않으면
false
를 반환합니다.
public class Main {
public static void main(String[] args) {
String str = "Hello, World!";
boolean containsHello = str.contains("Hello");
boolean containsJava = str.contains("Java");
System.out.println("Hello 포함 여부: " + containsHello); // 출력: true
System.out.println("Java 포함 여부: " + containsJava); // 출력: false
}
}
2.7 startsWith()
와 endsWith()
: 시작 및 끝 문자열 확인
startsWith()
는 문자열이 특정 문자열로 시작하는지를 확인합니다.endsWith()
는 문자열이 특정 문자열로 끝나는지를 확인합니다.
public class Main {
public static void main(String[] args) {
String str = "Hello, World!";
boolean startsWithHello = str.startsWith("Hello");
boolean endsWithWorld = str.endsWith("World!");
System.out.println("Hello로 시작하는가? " + startsWithHello); // 출력: true
System.out.println("World!로 끝나는가? " + endsWithWorld); // 출력: true
}
}
2.8 indexOf()
: 특정 문자열의 위치 찾기
indexOf()
메서드는 문자열에서 특정 문자열이나 문자가 처음으로 나타나는 위치의 인덱스를 반환합니다.
public class Main {
public static void main(String[] args) {
String str = "Hello, World!";
int indexOfW = str.indexOf('W'); // W의 인덱스
int indexOfHello = str.indexOf("Hello"); // Hello의 인덱스
System.out.println("W의 위치: " + indexOfW); // 출력: 7
System.out.println("Hello의 위치: " + indexOfHello); // 출력: 0
}
}
2.9 replace()
: 문자열 치환
replace()
메서드는 문자열에서 특정 문자나 문자열을 다른 문자나 문자열로 바꿀 때 사용됩니다.
public class Main {
public static void main(String[] args) {
String str = "Hello, World!";
String replacedStr = str.replace("World", "Java");
System.out.println("치환된 문자열: " + replacedStr); // 출력: Hello, Java!
}
}
2.10 trim()
: 문자열 앞뒤 공백 제거
trim()
메서드는 문자열의 앞뒤에 있는 공백을 제거합니다. 문자열 중간의 공백은 제거되지 않습니다.
public class Main {
public static void main(String[] args) {
String str = " Hello, World! ";
String trimmedStr = str.trim();
System.out.println("공백 제거 전: [" + str + "]");
System.out.println("공백 제거 후: [" + trimmedStr + "]");
}
}
2.11 split()
: 문자열을 구분자로 나누기
split()
메서드는 문자열을 구분자를 기준으로 나누어 배열로 반환합니다.
public class Main {
public static void main(String[] args) {
String str = "apple,banana,grape";
String[] fruits = str.split(",");
for (String fruit : fruits) {
System.out.println(fruit);
}
}
}
출력:
apple
banana
grape
2.12 join()
: 문자열 배열을 특정 구분자로 합치기
join()
메서드는 문자열 배열을 특정 구분자로 합쳐서 하나의 문자열로 반환합니다.
public class Main {
public static void main(String[] args) {
String[] words = {"Hello", "World", "Java"};
String sentence = String.join(" ", words);
System.out.println(sentence); // 출력: Hello World Java
}
}
2.13 isEmpty()
와 isBlank()
: 문자열 비어있는지 확인
isEmpty()
는 문자열이 **빈 문자열("")**인지 확인합니다.isBlank()
는 문자열이 공백 문자로만 구성되어 있는지 확인합니다. (자바 11 이상)
public class Main {
public static void main(String[] args) {
String str1 = "";
String str2 = " ";
System.out.println("str1 isEmpty: " + str1.isEmpty()); // true
System.out.println("str2 isBlank: " + str2.isBlank()); // true (자바 11 이상)
}
}
요약
자바의 **
String
클래스**는 문자열을 다루기 위한 다양한 메서드를 제공합니다. 주요 메서드는 다음과 같습니다:
- 문자열의 길이, 일부분 추출, 특정 문자 찾기 등 기본 작업 (
length()
,substring()
,charAt()
등) - 대소문자 변환, 문자열 비교, 문자열 포함 여부 확인 (
toLowerCase()
,equals()
,contains()
등) - 공백 제거, 문자열 자르기 및 치환 (
trim()
,split()
,replace()
등) - 구분자로 문자열 합치기 (
join()
)
이러한 메서드를 활용하면 자바에서 효율적으로 문자열을 조작하고 처리할 수 있습니다.