알고리즘/C#

[C#] 문자열 다루기 기본 - 프로그래머스

야아옹 2020. 10. 14. 18:00

문제 : 문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 a234이면 False를 리턴하고 1234라면 True를 리턴!

 

제한 사항

  • s는 길이 1 이상, 길이 8 이하인 문자열입니다.

풀이 : 처음에 Try Catch 로 예외발생 시 false 를 Return 시키는 코딩을 하려다가 try catch 는 안쓰는게 좋다는 C# 코딩의 기술책에서 읽었으니 다른 방식으로 생각하여 그냥 Tryparse 를 사용하여 진행!

public static bool solution(string s)
 {
     bool answer = true;
     int result;

     if (s.Length == 4 || s.Length == 6)
     {
         if (!int.TryParse(s, out result))
             answer = false;
     }
     else
     {
         return false;
     }
    
     return answer;
 }

 

풀이2 : 문자열을 다루기 때문에 정규식을 사용할 수 있다는걸 다른 사람 풀이를 보고.. 알게되었다..

          정규식을 많이 사용하지 않다보니 그런경우라 생각이든다.. 정규식도 알아보는계기가 되었다..

using System.Text.RegularExpressions;

bool answer = false;
public bool solution(string s) {
   if(s.Length == 4 || s.Length == 6)
   {
       answer = Regex.IsMatch(s, @"^\d+$");
   }
}
return answer;