[ Java 코딩 테스트 ] 팰린드롬(replaceAll 사용)

한대희·2024년 1월 19일
0

Java 코딩 테스트

목록 보기
9/11

문제

  • 앞에서 읽을 때나 뒤에서 읽을 때나 같은 문자열을 회문 문자열, 또는 팰린드롬이라고 한다.
  • 문자열이 입력되면 해당 문자열이 팰린드롬이면 yes 아니면 no 출력하시오.
  • 단 회문을 검사할 때 알파벳만 가지고 회문을 검사하며, 대소문자를 구분하지 않는다.
  • 알파벳 이외의 문자들은 무시한다.

입력

  • 첫 줄에 길이 100을 넘지 않는 공백이 없는 문자열이 주어진다.

출력

  • 첫 번째 줄에 팰린드롬인지의 결과를 yes또는 no로 출력한다.

예시

//입력
found3, time : study; Yduts; emit, 3DnuoF

//출력
yes

코드

class Main {

    public static String solution(String str) {
        String answer = "YES";
        // 전달받은 문자열에서 대문자 A부터 Z까지가 아닌 것들을 공백으로 처리
        str = str.toUpperCase().replaceAll("[^A-Z]","");
        // 처리된 문자열을 뒤집어서 비교
        String tmp = new StringBuilder(str).reverse().toString();
        if (!str.equals(tmp)) {
            answer = "NO";
        }

        return answer;

    };

    public static void main(String[] args) {
        // 스캐너 객체를 생성한다.
        Scanner input = new Scanner(System.in);
        // 문자를 입력 받아 solutrion 메서드에 전달
        String str = input.nextLine();
        System.out.println(solution(str));

    }
}

사용한 메서드

replaceAll

  • replaceAll은 대상 문자열을 원하는 문자 값으로 변환하는 함수다.
  • 2개의 매개 변수를 가지는데, 첫번째 매개 변수는 변환하고자 하는 대상이 되는 문자열이고 두번째 매개변수는 변환할 문자 값이 된다.
// replace 함수도 같은 역할을 수행 하는데, replaceAll은 아래 처럼 
// 정규 표현식을 사용할 수 있다.
String replaceAll(String regex, String replacement);


// 예제
String str2 = "abcdefghijk";

// 정규표현식을 활용해 지정한 문자를 치환
System.out.println(str2.replaceAll("[abchij]", "z")); //zzzdefgzzzk

// 정규표현식을 활용해 원하는 문자열을 제외하고 치환
System.out.println(str2.replaceAll("[^abchij]", z)) // abczzzzhilz
profile
개발 블로그

0개의 댓글