[JAVA] 문자열 체크

문제 문자열을 입력받아 문자열 내에 아래 중 하나가 존재하는지 여부를 리턴

조건 ‘a’로 시작해서 ‘b’로 끝나는 길이 5의 문자열 ‘b’로 시작해서 ‘a’로 끝나는 길이 5의 문자열

package com.codestates.coplit;
import java.util.*;

public class Solution {
	public boolean ABCheck(String str) {
    //예외는 false 반환
		if (str.length() == 0) return false;

		str = str.toLowerCase();

		for (int i = 4; i < str.length(); i++) {
		if ((str.charAt(i) == 'a' && str.charAt(i-4) == 'b') || (str.charAt(i) == 'b'&& str.charAt(i-4) == 'a')) return true;
		}
		return false;
	}
}

흐름

  1. 빈배열 return false
  2. for (i를 4로 하고 str의 길이보다 작을 때까지 반복문을 돌림)
  3. if (문자열의 첫번째가 a이고 마지막이 b인 길이 5의 문자열인지)   (문자열의 첫번째가 b이고 마지막이 a인 길이 5의 문자열인지) return true;

i를 4로 한 이유는 i를 0으로 하고 if문에서 i+4를 하면 배열의 총 길이를 초과한다 따라서 배열의 길이보다 검색하는 길이가 길 수 없으므로 i를 4로 한 것이다.

toLowerCase(): 소문자로 변환 charAt(): String타입을 char타입으로 변환할 때 사용