티스토리 뷰

반응형

 

C# 특정 자릿수 문자 추가

하나씩 증가되는 문서번호를 여러 자릿수로 만들거나, sub 번호를 4자리로 만드는 등 특정 자릿수에 특정 문자를 추가할 경우 PadLeft, PadRight 등을 사용해서 구현할 수 있다. 예를 들어 subNo라는 칼럼에 0001, 0002, 0003, 0004... 등으로 순차 증가되는 문자를 넣어줘야한다고 가정하자.

 

이럴 경우 아래 2가지 조건을 만족해야 한다.

1. 숫자가 1씩 증가해야 한다.

2. 자릿수는 4자리를 유지해야 한다.

 

 

 


 

PadLeft를 사용하지 않은 예제

PadLeft를 사용하지 않고 조금 무식하게 만든 예제이다. 이렇게 해도 0001~9999 까지 순차적으로 값을 생성할 수 있지만 코드 가독성도 좋지않고 간단한 로직인데도 복잡하다.

for(int i = 1; i <= 100; i++)
{
    string subNo = string.Empty;

    if(i.ToString().Length == 1) //한자리 숫자인 경우
    {
        subNo = "000" + i.ToString(); // "000" + 1 = 0001 출력
    }
    else if (i.ToString().Length == 2)
    {
        subNo = "00" + i.ToString(); // "00" + 10 = 0010 출력
    }
    else if (i.ToString().Length == 3)
    {
        subNo = "0" + i.ToString(); // "0" + 100 = 0100 출력
    }
    else
    {
        subNo = i.ToString(); // 1000 출력
    }
}

 

 

 


 

PadLeft를 사용한 예제

같은 처리를 PadLeft를 사용했을 경우의 예제이다. 가독성도 좋고 한줄이면 간단하게 처리할 수 있다.

for(int i = 1; i <= 100; i++)
{
    // 숫자가 4자리가 아닌 경우 빈 공간을 0으로 채워서 4자리로 만들어준다
    string subNo = i.ToString().PadLeft(4, '0'); // i = 1 일 경우 0001, i = 10 일 경우 0010
}

 

나는 보통 문서번호의 하위번호를 4자리로 순차 발행해야할 경우 사용하고 있다. 아래 표와 같은 형태로 DB에 데이터를 저장할 때 유용하게 사용할 수 있다.

 

문서번호 하위번호
DOCU0001 0001
DOCU0001 0002
DOCU0001 0003

 

반응형

'프로그래밍 > 윈도우개발' 카테고리의 다른 글

DevExpress 컨트롤 자동 정렬  (0) 2023.02.19
C# 날짜 차이 구하기  (0) 2023.02.18
C# 현재 위치의 함수명 호출  (0) 2023.02.15
C# 버튼에 배경색 넣기  (0) 2023.02.12
C# 파일 삭제 방법  (0) 2023.02.11
댓글
공지사항