문제
문자열을 입력받아 문자열 내에 아래 중 하나가 존재하는지 여부를 리턴
조건
'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타입으로 변환할 때 사용