[C#] 선행 0을 사용하여 숫자를 문자열로 포맷하는 방법은 무엇입니까?

문자열로 변환 해야하는 숫자가 있습니다. 먼저 이것을 사용했습니다 :

Key = i.ToString();

그러나 나는 그것이 이상한 순서로 정렬되고 있음을 알고 있으므로 0으로 채워야합니다. 어떻게해야합니까?



답변

오히려 간단합니다.

Key = i.ToString("D2");

D“소수”, 2인쇄 할 자릿수를 나타냅니다.


답변

String의 일부 사용 예는 C #의 문자열 형식을 참조하십시오.

실제로 int 형식 의 더 좋은 예

String.Format("{0:00000}", 15);          // "00015"

또는 문자열 보간을 사용하십시오 .

$"{15:00000}";                           // "00015"


답변

고정 너비 (예 : 10 자리)를 유지하려면 다음과 같이하십시오.

Key = i.ToString("0000000000");

원하는 숫자로 교체하십시오.

i = 123그러면 결과가됩니다 Key = "0000000123".


답변

아직 아무도 언급하지 않았으므로 C # 버전 6 이상 (예 : Visual Studio 2015)을 사용하는 경우 문자열 보간 을 사용하여 코드를 단순화 할 수 있습니다. 따라서을 사용하는 대신 다음과 string.Format(...)같이하면됩니다.

Key = $"{i:D2}";


답변

사용하다:

i.ToString("D10")

참조 Int32.ToString (MSDN) 및 표준 숫자 형식 문자열 (MSDN).

또는을 사용하십시오 String.PadLeft. 예를 들어

int i = 321;
Key = i.ToString().PadLeft(10, '0');

결과입니다 0000000321. 비록 String.PadLeft음수 작동하지 않을 것입니다.

String.PadLeft (MSDN)를 참조하십시오 .


답변

일반적으로 String.Format ( “format”, object)이 object.ToString ( “format”)보다 선호됩니다. 따라서,

String.Format("{0:00000}", 15);  

~보다 바람직하다

Key = i.ToString("000000");


답변

시험:

Key = i.ToString("000000");

그러나 개인적으로 문자열 표현 대신 정수를 직접 정렬 할 수 없는지 알 수 있습니다.