https://school.programmers.co.kr/learn/courses/30/lessons/181900
delete() 메소드
[JAVA] delete() - 문자열의 일부분을 제거하는 메소드 (tistory.com)
- 인덱스의 값을 기준으로 부분 문자열을 문자열에서 제거
- 특정 위치의 문자열 중 문자 한 개만을 제거하고 싶을 때는 deleteCharAt() 메소드를 사용하면 됨
- delete(), deleteCharAt() 메소드를 사용하기 위해서는 StringBuffer 클래스를 임포트 해야 함
public class Main{
public static void main(String args[]) {
StringBuffer str = new StringBuffer("Java Oracle");
System.out.println("원본 문자열 : " + str);
System.out.println(str.delete(4, 8));
System.out.println("delete() 메소드를 한 후 문자열 : " + str);
System.out.println(str.deleteCharAt(1));
System.out.println("deleteCharAt() 메소드까지 사용하고 난 후의 문자열 : " + str);
}
}
출처: https://itprogramming119.tistory.com/entry/JAVA-40-문자열에서-부분-문자열을-제거하는-delete-메소드-StringBuffer-클래스 [코딩병원:티스토리]
정답
import java.util.Arrays;
class Solution {
public String solution(String my_string, int[] indices) {
StringBuilder sb = new StringBuilder(my_string);
// 인덱스 배열을 내림차순으로 정렬하여, 뒤에서부터 제거할 문자를 처리
Arrays.sort(indices);
for (int i = indices.length - 1; i >= 0; i--) {
int index = indices[i];
sb.deleteCharAt(index);
}
return sb.toString();
}
}
다른 사람의 풀이
class Solution {
public String solution(String my_string, int[] indices) {
char[] arr = my_string.toCharArray();
for(int i : indices) {
arr[i] = ' ';
}
StringBuilder sb= new StringBuilder();
for(int i=0; i<arr.length; i++) {
if(arr[i] != ' ') {
sb.append(arr[i]);
}
}
return sb.toString();
}
}
'Java > 프로그래머스' 카테고리의 다른 글
[JAVA] 프로그래머스 - 가까운 1 찾기 (0) | 2024.04.02 |
---|---|
[JAVA] 프로그래머스 - 카운트 다운 (0) | 2024.04.02 |
[JAVA] 프로그래머스 - 배열 만들기 1 (0) | 2024.04.02 |
[JAVA] 프로그래머스 - qr code (0) | 2024.03.28 |
[JAVA] 프로그래머스 - 세로 읽기 (0) | 2024.03.28 |