문자열을 숫자로 변환해야 하는 이유
Console.ReadLine 과 같이 콘솔에서 사용자가 값을 입력하면 항상 문자열로 받게 된다.
숫자를 입력하더라도 사람 눈에는 숫자로 보이지만 컴퓨터는 문자열로 인식한다.
컴퓨터에게 숫자와 콘솔에서 입력받은 값을 계산하라고 시켜보자.
string a = Console.ReadLine();
// 문자열을 받을수 있는 a 라는 변수에 콘솔에서 123을 입력받는다.
Console.WriteLine( a + 1 );
// 출력되길 원하는 값은 124 이다.
// 하지만 컴퓨터는 123을 문자열로 인식하기 때문에
// 문자열 + 1 이 되어 실제로 출력되는 값은 1231 이 된다.
그러므로 컴퓨터에게 입력시킨 문자열을 숫자로 변환시킬 필요가 있다.
Parse
- 문자열을 원하는 자료형으로 직접 변환한다.
- 변환이 성공하면 → 변환된 값 반환
- 변환이 실패하면 → 예외 ( Exception ) 발생 ( 프로그램이 멈출 수도 있음 )
string str = "123";
// 문자열 str 을 담을수 있는 변수안에 123을 저장
int num = int.Parse(str);
// str 에 있는 문자열을 정수(int)로 변환하고 num 변수에 저장
Console.WriteLine(num); // 123
// num 에 저장되어 있는 정수를 출력
잘못된 문자열을 반환하려 하면 오류 발생
string str = "abc";
// 문자열을 담을수 있는 str 변수 안에 abc 을 저장
int num = int.Parse(str); // 예외 발생 → 프로그램 중단
// str 변수 안에 저장되어 있는 값 abc 를 꺼내보고 숫자로 변환하려 했으나 실패
// 프로그램이 에러 메세지를 출력하며 중단된다
TryParse
- 문자열을 원하는 자료형으로 변환 시도한다.
- 변환 성공 여부를 bool 로 반환 ( true / false )
- 변환된 값은 out 변수에 저장
- 실패해도 프로그램이 멈추지 않음 ( 안전함 )
string str = "123";
int num = 0;
// 문자열을 담을수 있는 변수 str 을 선언하고 123 값을 담는다
// 정수형을 담을수 있는 변수 num 을 선언하고 0 으로 초기화
if (int.TryParse(str, out num))
// 조건문
// 변수 str 을 열어 값을 꺼내보고 그 값을 숫자로 변환 시도해라
// 변환이 성공하면 (true) , 변환이 실패하면 (false)
// 정수 변환에 성공한 값을 변수 num 에 담는다
{
Console.WriteLine($"변환 성공: {num}");
}
else
{
Console.WriteLine("변환 실패");
}
// 만약 (if) str 변환에 성공 (true)했으면
// 콘솔에 변환 성공 출력
// 그렇지 않으면 콘솔에 변환 실패 출력
정리
| 구분 | Parse | TryParse |
|---|---|---|
| 반환값 | 변환된 값 | 성공 여부 ( bool ) |
| 변환 실패시 | 예외 발생 | false 반환 ( 안전 ) |
| 사용 방식 | 단순 변환 | 조건문과 함께 검증 |
언제 사용할까
- Parse → 입력이 확실히 숫자일 때 ( 빠르고 간단하다 )
- TryParse → 입력이 불확실할 때 ( 안전, 사용자 입력 처리에 자주 사용, 예외 처리 가능 )
참고자료
Parse
https://learn.microsoft.com/ko-kr/dotnet/api/system.guid.parse?view=net-9.0
TryParse
'⭐C Sharp > 07. 메서드(함수)' 카테고리의 다른 글
| in ( 매개변수 키워드 , 참조 전달 ) (0) | 2025.09.28 |
|---|---|
| out ( 매개변수 키워드 , 참조 전달 ) (0) | 2025.09.28 |
| ref ( 매개변수 키워드 , 참조 전달 ) (0) | 2025.09.28 |
| 함수 ( Function ) (0) | 2025.09.07 |
| Convert 를 이용한 변환 (0) | 2025.09.07 |