# 모르거나 헷갈리는 부분
1) 문자열의 정렬은 어떻게? --> StringBuffer, StringBuilder라는 클래스 사용
** StringBuffer, StringBuilder 주요 메서드
.append( ) : StringBuffer 인스턴스가 저장하고 있는 문자열 뒤에 덧붙인다
StringBuilder sb = new StringBuilder("Hello");
sb.append(" World");
System.out.println(sb); // 출력: Hello World
.delete(int start, int end) : 시작위치(start) 부터 끝 위치(end) 사이에 있는 문자를 제거한다 (단, 끝 위치의 문자는 제외!)
.deleteCharAt(int index) : 지정된 위치(index)의 문자를 제거한다.
.insert(int pos, String str) : 두번째 매개변수로 받은 값을 문자열로 변환하여 지정된 위치(pos)에 추가한다. (pos는 0부터 시작)
.replace(int start, int end, string str) : 지정된 범위(start ~ end)의 문자들을 주어진 문자열로 바꾼다. (end 위치의 문자는 범위에 포함 되지않는다!)
.reverse( ) : 문자열의 순서를 거꾸로 나열한다.
.setCharAt(int index, char ch) : 지정된 위치의 문자를 주어진 문자(ch)로 바꾼다
.toString( ) : StringBuffer 인스턴스의 문자열을 String으로 반환한다.
.subString(int start) or .subString(int start, int end)
: 지정된 범위 내의 문자열을 String으로 뽑아서 반환한다.
* 문자열도 길이를 구할 수 있음
String my_string ---> my_string.length()는 9
* 문자열의 위치값
String my_string = "hello";
System.out.println(my_string.charAt(0)); // 출력: h
System.out.println(my_string.charAt(1)); // 출력: e
System.out.println(my_string.charAt(4)); // 출력: o
# StringBuffer vs StringBuilder 차이
사용자가 스레드에 접근할 때(=사용자가 어떤 기능을 사용할 때) 동시성 문제(=동시에 접근했을 때)가 있는데,
동기화가 자동으로 되는 클래스는 StringBuffer이고, StringBuilder는 따로 설정을 해주지 않는 경우 동기화 자동으로 안 됨.
--> 여러 스레드라는 것은 예를 들어, a, b라는 사용자가 동시에 상품을 구매할 때와 같은 상황
즉, 여러 클래스 객체가 동시에 실행되는 상황
1. 내가 작성한 답(오답)
class Solution {
public String solution(String my_string) {
//문자열을 split("")으로 나눈 후, 배열에 넣고
//배열의 순서를 바꿔보기
List<String> str = ArrayList<>();
// my_string.split(""); // 'm', 'y','_',,,,
str.add(my_string.split(""));
str.sort("", reverse)??
return str;
}
}
2. 정답
StringBuffer클래스 사용
class Solution {
public String solution(String my_string) {
String answer = "";
StringBuffer sb = new StringBuffer(my_string);
answer = sb.reverse().toString();
return answer;
}
}
--> StringBuffer 예시 (문자 추가)
String my_test = "This";
StringBuffer str = new StringBuffer(my_test); // my_test로 StringBuffer 객체 생성
str.append(" was good"); // 문자열을 뒤에 추가
System.out.println(str.toString()); // "This was good" 출력
'Coding Test' 카테고리의 다른 글
(CodingTest) : 5일차 직각삼각형 출력하기 (3-1) (0) | 2025.02.09 |
---|---|
(SQL > JOIN) : 5일차 없어진 기록 찾기 (0) | 2025.02.09 |
(CodingTest) : 4일차 배열 뒤집기2 (3-2) (0) | 2025.02.08 |
(CodingTest) : 4일차 배열 뒤집기 (3-1) (0) | 2025.02.08 |
(SQL > JOIN) : 4일차 상품 별 오프라인 매출 구하기 (0) | 2025.02.08 |