본문 바로가기
C#

C#에서 String을 Int로 변환하는 4가지 방법 (TryParse, Parse, Convert, System.Globalization)

by 코딩이라구 2025. 3. 20.

C#에서 코딩을 할 때 문자열(string)을 정수(int)로 변환해야 하는 경우가 많습니다. 예를 들어, 사용자의 입력을 처리하거나 파일 또는 DB(데이터베이스)에서 불러온 데이터를 숫자로 변환해야 할 때 자주 사용됩니다. 이번 글에서는 int.Parse(), Convert.ToInt32(), int.TryParse(), System.Globalization을 활용한 변환 방법을 예제 코드와 함께 설명합니다.


목차

  1. int.Parse()
    1. int.Parse()의 특징
  2. Convert.ToInt32()
    1. Convert.ToInt32()의 특징
  3. int.TryParse() - 가장 안전한 방법
    1. int.TryParse()의 특징
  4. System.Globalization을 활용한 변환 (고급)
    1. System.Globalization의 특징
  5. 각 변환 방법의 예외 발생 여부 및 특징 (표 참조)

1. int.Parse()

int.Parse()는 가장 직관적인 변환 방법이지만, 변환할 문자열이 유효한 숫자가 아닐 경우 예외(FormatException)가 발생합니다.

string numberString = "123";
int number = int.Parse(numberString);
Console.WriteLine(number); // 출력: 123

int.Parse()의 특징

  • 변환할 문자열이 숫자가 아닐 경우 예외 발생
  • 공백이 포함되면 예외 발생 (" 123" → 오류 발생)
  • 숫자로 변환 가능한 경우 정상 변환

int.Parse() 예외 처리 방법

 

 

2. Convert.ToInt32()

Convert.ToInt32()int.Parse()와 비슷하지만, null을 입력받으면 예외를 발생시키지 않고 0을 반환하는 차이점이 있습니다.

string numberString = null;
int number = Convert.ToInt32(numberString);
Console.WriteLine(number); // 출력: 0

Convert.ToInt32()의 특징

  • 숫자로 변환 불가능한 경우 예외 발생 ("ABC" → 오류 발생)
  • null 값을 입력하면 0 반환

Convert.ToInt32() MSDN 보기

 

3. int.TryParse() - 가장 안전한 방법

int.TryParse()는 예외를 발생시키지 않고 변환 성공 여부를 true 또는 false로 반환합니다.

string numberString = "123abc";
bool success = int.TryParse(numberString, out int number);
if (success)
{
    Console.WriteLine(number); // 실행되지 않음
}
else
{
    Console.WriteLine("변환 실패");
}

int.TryParse()의 특징

  • 변환 성공 여부를 bool으로 반환
  • 예외 발생 없이 안전하게 처리 가능
  • 숫자로 변환할 수 없는 경우 0 반환 (변수 number)

 

4. System.Globalization을 활용한 변환 (고급)

숫자의 형식이 지역(locale)에 따라 다를 수 있기 때문에 System.Globalization을 활용하면 보다 정교한 변환이 가능합니다.

using System;
using System.Globalization;

string numberString = "1,234"; // 천 단위 구분 기호 포함
int number = int.Parse(numberString, NumberStyles.AllowThousands, CultureInfo.InvariantCulture);
Console.WriteLine(number); // 출력: 1234

System.Globalization의 특징

  • 다양한 숫자 형식 지원 (AllowThousands, AllowDecimalPoint 등)
  • 특정 문화권(CultureInfo)에 따라 숫자 형식 지정 가능

System.Globalization MSDN 보기

 

 

5. 각 변환 방법의 예외 발생 여부 및 특징  (표 참조)

변환 방법 예외 발생 여부 특징
int.Parse() 발생 가장 간단하지만 예외 가능
Convert.ToInt32() 발생 (단, null은 0 반환) null 처리 가능
int.TryParse() 없음 가장 안전한 변환 방법
System.Globalization 필요에 따라 다름 문화권별 숫자 처리 가능

가장 안전한 방법을 원한다면 int.TryParse()를 사용하는 것이 좋으며, 특정 문화권의 숫자 형식을 처리해야 한다면 System.Globalization을 활용하는 것이 유용합니다.

댓글