-
[자바(JAVA)] 특정 문자 제거하기(replace), 문자 반복 출력하기(split, toCharArray) 편지, 모음 제거(replaceAll), 문자열안에 문자열(contains)프로그래머스/자바(JAVA) 2023. 5. 26. 01:23728x90
1. 특정 문자 제거하기
class Solution { public String solution(String my_string, String letter) { String answer = ""; answer = my_string.replace(letter, ""); return answer; } }
📌 replace()
: 문자열에서 특정 문자 또는 문자열을 다른 문자 또는 문자열로 대체하는 기능을 제공한다.
// 단일 문자 대체 String originalString = "Hello, World!"; String replacedString = originalString.replace('o', 'x'); System.out.println(replacedString); // "Hellx, Wxrld!" // 문자열 대체 // target과 일치하는 모든 문자열을 변경한다. String originalString2 = "Hello, Java!"; String replacedString2 = originalString2.replace("Java", "Python"); System.out.println(replacedString2); // "Hello, Python!"
❌ replace() 메서드는 원본 문자열을 변경하지 않고 대체된 새로운 문자열을 반환한다.
따라서 원본 문자열을 변경하고자 한다면 StringBuilder 또는 StringBuffer를 사용하여 문자열을 조작해야 한다.
참고) https://imcodiiing.tistory.com/129
2. 문자 반복 출력하기
class Solution { public String solution(String my_string, int n) { String answer = ""; for(int i=0; i<my_string.length();i++){ for (int j=0; j<n; j++){ answer += my_string.charAt(i); } } return answer; } }
✅ 1. 다른풀이
class Solution { public String solution(String my_string, int n) { String answer = ""; String[] str = my_string.split(""); // 문자열을 한글자씩 분리 후 배열저장 for(int i=0; i<my_string.length(); i++){ answer += str[i].repeat(n); // 반복 후 String으로 저장 } return answer; } }
📌split () : 자바의 split() 메서드는 문자열을 특정 구분자(delimiter)를 기준으로 분리하여 문자열 배열로 반환하는 기능을 제공함.
ex) abcdef -> split("c")
> ab, def
split("") -> 모든 단어를 끊어서 배열에 저장한다.
✅ 2. 다른풀이
class Solution { public String solution(String my_string, int n) { StringBuilder sb = new StringBuilder(); for(char c : my_string.toCharArray()){ sb.append((c + "").repeat(n)); // c배열값 하나씩 돌리면서 반복을 함께 진행 } return sb.toString(); } }
📌 toCharArray()는 자바 문자열을 문자 배열(char array)로 변환하는 메서드이다.
이 메서드는 문자열의 각 문자를 개별적인 배열 요소로 만들어 새로운 char 배열을 반환한다.
String originalString = "Hello"; char[] charArray = originalString.toCharArray(); for (char ch : charArray) { System.out.println(ch); } // 출력값 // H // e // l // l // o
3. 편지
class Solution { public int solution(String message) { int answer = message.length() * 2; return answer; } }
4. 모음 제거
class Solution { public String solution(String my_string) { String answer = ""; answer = my_string.replaceAll("[aeiouAEIOU]", ""); return answer; } }
📌 replaceAll() 메서드는 해당 정규 표현식에 매치되는 모든 문자를 두 번째 인자인 빈 문자열로 대체합니다.
// replaceAll 사용방법 String replacedString = originalString.replaceAll(String regex, String replacement); // originalString: 대상이 되는 원본 문자열 // regex: 정규 표현식으로 특정 패턴을 지정 // replacement: 대체할 문자열
replaceAll() 메서드는 originalString에서 regex에 매치되는 모든 부분을 replacement로 대체한 새로운 문자열을 반환함.
replaceAll() 메서드는 정규 표현식을 사용하므로 특수 문자에 대한 이스케이프 처리가 필요할 수 있다.
ex) '.' (마침표) 문자를 대체하려면 "\."와 같이 이스케이프 문자를 사용
5. 문자열안에 문자열
class Solution { public int solution(String str1, String str2) { int answer = str1.contains(str2)? 1: 2; return answer; } }
📌 contains() 메서드는 문자열이 특정 부분 문자열을 포함하고 있는지를 확인하는 데 사용된다.
해당 문자열이 포함되어 있으면 true를 반환하고, 포함되어 있지 않으면 false를 반환한다.
728x90'프로그래머스 > 자바(JAVA)' 카테고리의 다른 글