C #에 문자가 있습니다.
char foo = '2';
이제 2를 int로 가져오고 싶습니다. Convert.ToInt32가 숫자 2가 아닌 char의 실제 십진수 값을 반환한다는 것을 알았습니다. 다음은 작동합니다.
int bar = Convert.ToInt32(new string(foo, 1));
int.parse는 문자열에서도 작동합니다.
C #에 문자열을 만들지 않고 char에서 int로 이동하는 기본 함수가 없습니까? 나는 이것이 사소한 일이라는 것을 알고 있지만 직접 변환 할 기본 사항이 없다는 것이 이상하게 보입니다.
답변
흥미로운 답변이지만 문서는 다르게 말합니다.
이
GetNumericValue
방법을 사용하여Char
숫자를 나타내는 객체를 숫자 값 유형 으로 변환 하십시오 .Parse
및TryParse
을 사용
하여 문자열의 문자를Char
객체 로 변환 합니다.
객체를 객체ToString
로 변환하는 데 사용 합니다.Char
String
http://msdn.microsoft.com/en-us/library/system.char.aspx
답변
이렇게하면 int로 변환됩니다.
char foo = '2';
int bar = foo - '0';
이것은 각 문자가 내부적으로 숫자로 표시되기 때문에 작동합니다. 문자 ‘0’에서 ‘9’는 연속적인 숫자로 표시되므로 문자 ‘0’과 ‘2’의 차이를 찾으면 숫자 2가됩니다.
답변
누구나 사용으로 간주했습니다 int.Parse()
과 int.TryParse()
같이
int bar = int.Parse(foo.ToString());
이처럼 더 나은
int bar;
if (!int.TryParse(foo.ToString(), out bar))
{
//Do something to correct the problem
}
훨씬 안전하고 오류가 적습니다.
답변
char c = '1';
int i = (int)(c-'0');
정적 메소드를 만들 수 있습니다.
static int ToInt(this char c)
{
return (int)(c - '0');
}