본문 바로가기
Java/연습문제

[JAVA] 문자열 체크

by 2D3 2022. 10. 21.
728x90

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

조건 '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타입으로 변환할 때 사용

728x90

댓글