C#에서 문자열을 Int로 변환하는 방법

  1. C# 문자열에서 정형 전환-Int16.Parse()/Int32.Parse()/Int64.Parse()메소드
  2. C# 문자열에서 정형 전환-Int16.TryParse()/Int32.TryParse()/Int64.TryParse()메소드
  3. C# 문자열에서 정형 전환-Convert.ToInt16()/Convert.ToInt32()/Convert.ToInt64()메소드

C#을 사용하여 인코딩할 때 문자열을 정형으로 변환하는 것은 쉬운 일이다.이 글에서 우리는 이 목적을 달성하기 위해 가장 간단하고 추천하는 방법들을 소개할 것이다.

C# 문자열에서 정형 전환-Int16.Parse()/Int32.Parse()/Int64.Parse()메소드

Parse()메소드를 사용하여 숫자의 문자열 표현을 16/32/64 비트 부호있는 정수로 변환 할 수 있습니다. 표현을 위해 여기서부터 32 비트 변환 만 다룰 것입니다.

using System;

public class Instance{
    public static void Main(){
        string str_var = "123";
        int num_var = Int32.Parse(str_var);
        System.Console.WriteLine(num_var);
    }
}

산출:

123

이 메소드를 사용하는 것의 약간의 단점은 문자열이 일련의 숫자가 아닌 경우FormatException을 던진다는 것입니다.

Parse()는 문자열의 시작과 끝에서 공백을 무시하지만, 그 이외의 모든 문자는 성공적인 변환을 위해 적절한 숫자 값이어야합니다.

다음 코드와 같이 try...catch 문을 사용하여 예외를 처리하는 것이 좋습니다.

using System;

public class Instance{
    public static void Main(){
        string str_var = "abc";
        try
        {
            int num_var = Int32.Parse(str_var);
            System.Console.WriteLine(num_var);
        }
        catch (FormatException)
        {
            System.Console.WriteLine("Invalid String");
        }
    }
}

산출:

Invalid String

C# 문자열에서 정형 전환-Int16.TryParse()/Int32.TryParse()/Int64.TryParse()메소드

Parse()메소드에 대한 적절한 대안으로 간주되는TryParse()메소드는 실패시 예외를 발생시키지 않습니다. 대신 변환이 실패하면 False를 반환하여 구현이 더 간단 해집니다.

using System;

public class Instance{
    public static void Main(){
        bool result;
        string str_var = "111";
        int num_var;
        result = Int32.TryParse(str_var, out num_var);
        if(result)
            System.Console.WriteLine(num_var);
        else
            System.Console.WriteLine("Invalid String");
    }
}

산출:

111

C# 문자열에서 정형 전환-Convert.ToInt16()/Convert.ToInt32()/Convert.ToInt64()메소드

Convert()메소드는 문자열 변수를 매개 변수로 사용하고 동등한 16/32/64 비트 부호있는 숫자 값을 리턴합니다. Parse()메소드와 유사하게이 메소드를 사용하려면 예외를위한try...catch 명령문이 필요합니다.

using System;

public class Instance{
    public static void Main(){
        string str_var = "123";
        try
        {
            int num_var = Convert.ToInt32(str_var);
            System.Console.WriteLine(num_var);
        }
        catch (FormatException)
        {
            Console.WriteLine("Invalid String");
        }
        catch (OverflowException)
        {
            Console.WriteLine("The string cannot fit in 32 bit value");
        }
    }
}

산출:

123

예외는 비싸고 일반적으로 프로그램 흐름에 포함시키는 것이 좋은 방법으로 간주되지 않습니다. 그러나 때때로 Convert()메소드에서 오버플로 조건과 같은 중요한 정보를 추출하는 것이 유용 할 수 있습니다.

위의 모든 방법은 똑같이 효과적이며 구현과 관련하여 특정 상충 관계가 있습니다. 이 기사에서 고려한 고려 사항에 따라 최적의 것을 선택하는 것이 좋습니다.

관련 문장 - Csharp Integer

  • C# Int를 문자열로 변환
  • 관련 문장 - Csharp String

  • C#에서 여러 줄 문자열 리터럴을 작성하는 방법
  • C#에서 문자열을 바이트 배열로 변환하는 방법