string을 32bit의 Int로 변환하는 다양한 방법을 소개합니다.
1. Int32.Parse()를 이용한 방법
Int32.Parse()
는 인자로 전달된 문자열을 32bit의 int로 변환합니다.
using System;
namespace Example {
public class Program {
public static void Main(string[] args) {
string str = "1234";
int num = Int32.Parse(str);
Console.WriteLine(num);
}
}
}
Output:
1234
1.1 잘못된 정수의 문자열 변환
아래 예제의 1234a
처럼 정수가 아닌 문자열을 int로 변환하려고 하면 FormatException
에러가 발생합니다.
string str = "1234a";
int num = Int32.Parse(str);
Console.WriteLine(num);
Output:
Unhandled exception. System.FormatException: Input string was not in a correct format.
at System.Number.ThrowOverflowOrFormatException(ParsingStatus status, TypeCode type)
at System.Int32.Parse(String s)
아래와 같이 try-catch
를 사용하여 예외를 처리할 수 있습니다. 에러가 발생할 때 num
은 0이 기본 값으로 설정되도록 구현할 수 있습니다.
int num;
try {
string str = "1234a";
num = Int32.Parse(str);
Console.WriteLine("Parsed: " + num);
} catch (FormatException) {
num = 0;
Console.WriteLine("Failed: " + num);
}
Output:
Failed: 0
2. Int32.TryParse()를 이용한 방법
Int32.TryParse(string, out)
는 string을 int로 변환하며 out 변수에 저장합니다.- 파싱이 성공하면 true를 리턴하며, 실패하면 false를 리턴합니다.
Int32.Parse()
와 비슷하지만, 예외가 발생하면 out 변수에 기본 값으로 0을 설정하는 예외처리가 적용됩니다.
아래와 같이 변환할 수 있으며, 함수 내부에서 예외처리가 되어있기 때문에 try-catch
는 추가하지 않아도 됩니다.
using System;
namespace Example {
public class Program {
public static void Main(string[] args) {
string str = "1234";
int num;
bool result = Int32.TryParse(str, out num);
if (result) {
Console.WriteLine("Parsed: " + num);
} else {
Console.WriteLine("Failed: " + num);
}
}
}
}
Output:
Parsed: 1234
만약 아래와 같이 정수가 아닌 1234a
를 파싱하면, false가 리턴되며 num에 0이 설정됩니다.
string str = "1234a";
int num;
bool result = Int32.TryParse(str, out num);
if (result) {
Console.WriteLine("Parsed: " + num);
} else {
Console.WriteLine("Failed: " + num);
}
Output:
Failed: 0
3. Convert.ToInt32()를 이용한 방법
Convert.ToInt32(string)
는 string을 int로 변환합니다.
using System;
namespace Example {
public class Program {
public static void Main(string[] args) {
int num;
try {
string str = "1234";
num = Convert.ToInt32(str);
Console.WriteLine("Parsed: " + num);
} catch (FormatException) {
num = 0;
Console.WriteLine("Failed: " + num);
}
}
}
}
Output:
Parsed: 1234
Loading script...
Related Posts
- C# 바이트(Byte) 배열을 문자열로 변환
- C# String.format() 함수 알아보기
- C# - foreach (Array, List, Dictionary)
- C# 프로퍼티(Property) Get/Set 함수
- C# - Dictionary에서 key, value 가져오기
- C# - Dictionary 순회, foreach, for 루프
- C# - Dictionary에서 key, value 삭제
- C# - Dictionary.add()로 데이터 추가
- C# - Dictionary 선언 및 초기화
- C# - 문자열을 Double, Float으로 변환
- C# - 문자열을 리스트로 변환
- C# - 두 날짜/시간 비교, DateTime.Compare()
- C# - 날짜 계산, DateTime 시간 더하기 빼기
- C# - 날짜 문자열을 DateTime으로 변환
- C# - Sleep, 몇 초간 지연시키기
- C# - Timestamp(millisecond)를 DateTime 객체로 변환
- C# - 현재 시간 가져오기, DateTime
- C# - 문자열 리스트를 문자열로 변환
- C# - 리스트 복사 (얕은 복사, 깊은 복사)
- C# - 2차원 리스트 선언 및 초기화
- C# - 리스트 선언 및 초기화
- C# - 리스트 길이, 크기 가져오기
- C# - 리스트 합계, 평균 계산
- C# - 리스트 요소 제거 (RemoveAt, RemoveAt, RemoveAll)
- C# - 리스트에서 빈 문자열, null 제거
- C# - 리스트 두개로 분리, n개로 나누기
- C# - 문자열 뒤집기, Reverse()
- C# - 2차원 배열 복사, Clone
- C# - 문자열 배열을 문자열로 변환
- C# - 2차원 배열 선언, 초기화 방법
- C# - 배열 길이, 2차원 배열 길이
- C# - 두개의 배열을 하나로 합치기
- C# - 배열 중복 요소 제거
- C# - 배열에서 특정 요소 제거
- C# - Int 배열 정렬 (오름차순, 내림차순)