[프로그래머스] 원하는 문자열 찾기
https://school.programmers.co.kr/learn/courses/30/lessons/181878
-두 개의 문자열이 주어지고 이 둘을 비교해볼 필요가 있다.
-pat은 첫번째로 주어진 문자열인 myString의 연속된 부분 문자열이다.
=> pat에 myString에 포함된 문자열과 똑같은 문자열들이 있더라도 연속적이지 않으면 조건을 충족시킨다고 볼 수 없다.
=> 예를 들어, abcDEPO가 myString일때 pat이 abc라면 1을 return, aD라면 0을 return 한다.
풀이)
문자열 검색에 사용되는 메서드들을 정리해 보았다.
문자열 검색에 사용 되는 메서드
1. IndexOf()
2. LastIndexOf()
3. Contains()
Contains() - 문자열을 포함하고 있는지 검사하는 메서드
=>지정한 문자냐, 문자열이냐에 따라 Char,String으로 나뉜다.
=> 지정된 문자(열)을 포함하고 있으면 true, 포함하고 있지 않으면 false 반환
=> StringComparison 인수를 사용해 대소문자의 구분 없이 비교할 수 있다.
=> StringComparison.CurrentCultureIgnoreCase : 현재 문화권의 정렬 규칙을 사용해 비교하고, 대/소문자를 무시해 문자열을 비교한다.
using System;
public class Solution {
public int solution(string myString, string pat) {
int answer = 0;
if(myString.Contains(pat,StringComparison.CurrentCultureIgnoreCase))
//if(myString.ToUpper().Contains(pat.ToUpper()))
{
answer = 1;
}
else{
answer = 0;
}
return answer;
}
}
=> 주석 처리된 부분과 같이 풀어도 상관없다. ToUpper를 사용해 대소문자를 통일해주는 방법이다.
=> ToUpper()는 대문자로 통일한다. 따라서 만약 소문자로 통일하고 싶다면 ToLower()를 사용하면 된다.
다른 풀이)
IndexOf() 메서드는 해당하는 문자열이 없으면 '-1'을 반환한다.
public class Solution {
public int solution(string myString, string pat)
{
return myString.ToUpper().IndexOf(pat.ToUpper()) == -1 ? 0 : 1;
}
}