반응형
char를 int로 바꾸고 싶다
문자열 형식으로 된 숫자를 int 형식으로 변환하고 싶을 때, Int32.Parse()를 사용해도 되지만 해당 메서드를 사용하지 못한다면 어떻게 변환해야 하는가?
string 형식의 문자열의 각 자릿수를 받아서 '0'을 빼주면 된다.
'0'을 빼주는 이유는 char가 아스키코드(ASCII)로 되어있기 때문에 문자와 숫자 사이의 차이(offset)를 맞춰주기 위해서다.
아스키코드 '0'의 값 : 48
예시 : 아스키코드 '5'의 값 : 53 - 48 = 5
이런 식으로 아스키코드 '5'가 숫자 5로 변환이 가능하다.
예제 코드
using System;
class Program
{
static void Main(string[] args)
{
var input = Console.ReadLine();
int value = 0;
for (int i = 0; i < input.Length; i++)
{
value = value * 10 + (input[i] - '0');
}
Console.WriteLine(value);
}
}
참조 사이트
[Java] CHAR - '0' 이 뭘까? (char 문자를 숫자로 변환하는 방법)
Java : char 문자를 숫자로 변경하는 방법!
velog.io
'프로그래밍 > C#' 카테고리의 다른 글
C# list 랜덤(random) 하게 섞기 (0) | 2024.03.21 |
---|---|
C# 비트 연산자를 이용한 홀수짝수 판별, 절반으로 나누기 함수 구현 (0) | 2024.03.18 |
C# StringBuilder에 대해서 (0) | 2024.02.21 |
C# 웹 인증(Authentication) & 권한(Authorization) 코드 작성하기 (0) | 2024.02.19 |
C# Value Type vs Reference Type (0) | 2024.02.15 |
댓글