문제/프로그래머스

[프로그래머스 : JAVA] 코딩 기초 트레이닝 Day 9 문자열

개발원슝이 2024. 7. 25. 15:44

 

접미사인지 확인하기

어떤 문자열에 대해서 접미사는 특정 인덱스부터 시작하는 문자열을 의미합니다.
예를 들어, "banana"의 모든 접미사는 "banana", "anana", "nana", "ana", "na", "a"입니다.
문자열 my_string과 is_suffix가 주어질 때, is_suffix가 my_string의 접미사라면 1을, 아니면 0을 return 하는 solution 함수를 작성해 주세요.
class Solution {
    public int solution(String my_string, String is_suffix) {
        int answer = 0;
        int start_index = my_string.length() - is_suffix.length();
        answer = start_index >= 0 && my_string.substring(start_index).equals(is_suffix) ? 1 : 0;        
        return answer;
    }
}
class Solution {
    public int solution(String my_string, String is_suffix) {
        int answer = 0;
        answer = my_string.endsWith(is_suffix) ? 1 : 0;
        return answer;
    }
}

 

매개변수 is_suffix의 단어가 매개변수 my_string의 뒷부분가 일치하면 1, 아니면 0을 반환하는 문제였다.

접미사의 길이를 구해서, my_sting의 인덱스로 활용해서 접미사와 일치하는지 확인하는 방법으로 풀었다.

이후에 다른 사람들의 풀이에서 endsWith()메서드의 존재를 확인해서 다시 풀었다.

 

JAVA String 접두사 접미사 확인 메서드

  • boolean startsWith(String prefix)
    • 헤당 문자열이 매개변수 문자열로 시작하는지 체크
    • 접두사 확인 후 boolean에 맞춰 반환
    • 공백도 취급
    • boolean isTrue = 문자열.startsWith(접두사);
  • boolean endsWith(String suffix)
    • 해당 문자열이 매개변수 문자열로 끝나는지 체크
    • 접미사 여부 확인 후 boolean에 맞춰 반환
    • 공백도 취급
    • boolean isTrue = 문자열.endsWith(접미사);