Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
Tags
- REST API
- 깊이우선탐색
- 백트래킹
- spring
- TwoPointer
- 누적합
- 비트마스킹
- 다이나믹 프로그래밍
- 슬라이딩 윈도우
- SlidingWindow
- 이분탐색
- 네트워크 관리 및 진단
- 깃
- AppArmor
- 리눅스
- 분할정복
- bitmasking
- 깃허브
- 스프링부트
- 투포인터
- github
- 너비우선탐색
- 브루트포스
- git
- Spring Boot
- iproute2
- Prefix sum
- Linux
- 알고리즘
- Bruteforce
Archives
- Today
- Total
kimgusxo 님의 블로그
문자열(String) 본문
1. 문자열(String)이란?

- 자바에서 문자열은 String 클래스로 표현되며, 불변(immutable) 특성을 갖고 있다. 즉 한 번 생성된 문자열은 변경할 수 없고 수정이 필요할 때마다 새로운 문자열 객체가 생성된다.
- 이러한 특성 때문에 메모리 관리와 쓰레드 안정성 측면에서는 장점으로 작용하지만 변경이 잦을경우 StringBuffer나 StringBuilder를 사용하자!
2. 주요 메소드
- length(): 문자열의 길이를 반환한다.
String str = "Hello";
System.out.println(str.length()); // 출력: 5
- charAt(int index): 해당 인덱스의 문자를 반환한다.
String str = "Hello";
System.out.println(str.charAt(1)); // 출력: 'e'
- substring(int beginIndex, int endIndex): 지정된 범위의 부분 문자열을 추출한다.
String str = "Hello";
System.out.println(str.substring(1, 4)); // 출력: "ell"
- indexOf(String str): 특정 문자열이 처음 등장하는 인덱스를 반환하며 없으면 -1을 반환한다.
String str = "Hello";
System.out.println(str.indexOf("lo")); // 출력: 3
- split(String regex): 정규 표현식을 기준으로 문자열을 분리하여 배열로 반환한다.
String data = "Java,Python,C++";
String[] languages = data.split(","); // 결과: ["Java", "Python", "C++"]
3. 기본 문자열 알고리즘
3-1. 팰린드롬(Palindrome) 검사
- 팰린드롬은 앞에서 읽으나 뒤에서 읽으나 똑같은 문자열을 의미한다.
public static boolean isPalindrome(String str) {
int left = 0;
int right = str.length() - 1;
while (left < right) {
if (str.charAt(left) != str.charAt(right)) {
return false;
}
left++;
right--;
}
return true;
}
System.out.println(isPalindrome("radar")); // 출력: true
System.out.println(isPalindrome("hello")); // 출력: false
3-2. 애너그램(Anagram) 검사
- 애너그램은 두 문자열이 동일한 문자 구성을 가지는지 검사하는 것이다.
public static boolean isAnagram(String s1, String s2) {
if (s1.length() != s2.length()) return false;
char[] c1 = s1.toCharArray();
char[] c2 = s2.toCharArray();
Arrays.sort(c1);
Arrays.sort(c2);
return Arrays.equals(c1, c2);
}
System.out.println(isAnagram("listen", "silent")); // 출력: true
System.out.println(isAnagram("hello", "world")); // 출력: false