문제 풀기/C#

35. (중요)문자열 다루기 기본(원하는 타입.TryParse(~~~, out))

kagan-draca 2025. 1. 21. 13:34


기본틀 : 

public class Solution {
    public bool solution(string s) {
        bool answer = true;
        return answer;
    }
}

 

제출한 코드 :

using System;

public class Solution {
    public bool solution(string s) {
        return (s.Length == 4 || s.Length == 6) && int.TryParse(s, out int result);
    }
}

 

추가 학습)

 

문제를 보고 string 타입의 매개변수 s에 문자가 포함 돼 있는지 여부를 판독하고

 

True, False를 반환해주는 함수가 있을 것이라 예상을 했다.

 

인터넷에 검색한 결과

 

원하는 타입.TryParse(input 값, out + 원하는 타입 + 변수 );

으로 형변환 가능 여부를 판별해주는 함수가 존재했다.

 

이 함수의 신기한 점은 

 

TryParse(~~~~~, out  + 원하는 타입(int, float, bool 등) + 결과를 담을 변수 )

 

으로

 

out 키워드를 사용하여 변환 결과를

저장할 변수를 지정한다는 점이 었다.

 

주요 특징으로는

 

  1. 반드시 메서드 내부에서 값이 할당되어야 함:
    • 메서드가 끝날 때 out 변수는 유효한 값을 가져야 합니다.
  2. 호출 시 초기화 불필요:
    • 호출자는 out 매개변수를 초기화하지 않아도 됩니다.
  3. 다중 반환을 효과적으로 처리:
    • 메서드가 여러 값을 반환하고 싶을 때 사용됩니다

 

이다. "3번의 다중 반환을 효과적으로 처리"의 예시로는

 

ex)

 

using System;

class Program
{
    static void Calculate(int a, int b, out int sum, out int multi)
    {
        sum = a + b;         // 반드시 값을 할당해야 함
        multi = a * b;
    }

    static void Main()
    {
        int x = 5, y = 3;
        Calculate(x, y, out int resultSum, out int resultMulti);
        
        Console.WriteLine($"Sum: {resultSum}, Multi: {resultProduct}");
    }
}

// 결과
// Sum : 8, Multi : 15

위와 같이 Calculate라는 함수를 만들었을 때, out int sum과 out int multi를 작성하면

 

Calculate를 호출할 때, sum과 multi의 결과를 담을 변수를 함께 input 값으로 주어

 

sum의 결과와 multi의 결과를 함께 반환 받을 수 있다는 점이다.