티스토리 뷰

반응형

 

C# string을 int로 변환

string에 입력된 숫자를 int 타입으로 변환하기 위한 방법은 2가지가 있다.

1. Convert.ToInt32 : string에 입력된 값이 반드시 숫자라는 전제하에 사용해야 한다.

2. int.TryParse : string에 입력된 값이 숫자가 아니어도 상관없다.

 

1번은 string에 입력된 값이 숫자가 아니면 에러가 발생하기 때문에 2번 방식을 보통 사용하고 있다. 무조건 string에 숫자가 들어온다고 생각하더라도 어떠한 변수로 인해서 공백이 들어올 수도 있고 다른 문자가 들어올 수 있기 때문에 현재는 2번 방식만을 사용하고 있다.

 

 

 


 

string을 int 타입으로 변환 예제

string numString = "100"; 
string name = "홍길동"; 
int num = 0; 

// 1. int.TryParse 사용
bool result = int.TryParse(numString, out num); // result = true, num = 100
result = int.TryParse(name, out num); // result = false, num = 0

// 2. Convert.ToInt32 사용
num = Convert.ToInt32(numString); // num = 100
num = Convert.ToInt32(name); // 프로그램 에러 발생(exception 발생)

 

1. int.TryParse를 사용할 경우

string에 입력된 값이 숫자가 아니어도 예외는 발생하지 않으며 bool 변수에 false를 리턴하고 int에는 숫자 0을 리턴한다. 리턴된 bool 값이 true/false에 따라서 조건처리할 수 있고 조건처리를 안 해도 int에 0을 리턴해주기 때문에 string에 값이 잘못 입력되면 0으로 처리해도 되는 경우 조건문 없이 그대로 사용해 줘도 된다.

 

2. Convert.ToInt32를 사용할 경우

공백을 포함하여 숫자가 아닌 경우 예외가 발생하게 된다. string에 무조건 숫자가 입력된다고 생각해서 이렇게 코드를 작성할 경우 다양한 변수로 인해서 예외가 발생할 수 있으며 이로인해 프로그램이 멈출 수도 있다. 변수의 경우 무조건이라는 건 없기 때문에 2번 방식을 사용할 경우 try~catch로 묶어서라도 예외처리는 반드시 해주도록 하자.

반응형
댓글
공지사항