2013-09-17 2 views
2

나는 물건을 살 수있는 웹 사이트를 운영하고 있으며 포털 사이트로 이동하는 주문 ID를 특정 방식으로 형식화하려고합니다. 나는이 같은 포맷하는 string.format 방법을 사용하고 있습니다 : 이 상황에서 String.Format은 어떻게 작동합니까?

Portal.OrderID = string.Format("{0}{1:0000000}-{2:000}", 
           "Z", 
           this.Order.OrderID, 
           "000"); 

그래서 우리는이 기본적으로 Z0545698-001처럼 보이게합니다. 내 질문은, 만약 this.Order.OrderID7보다 큰 경우 나는 string.format을 사용하고 있는가? 그렇다면

, 어떻게 내가 (즉 Z 1234567 - 000) 같은 형식을 유지하지만, 숫자의 첫 번째 세트를 가질 수있다 (1-7)는 어떤 숫자보다 7 길이와 7의 최소 (수 0 님의 정보가 없습니다.) 그리고 나서 7 이상의 길이를 가지고 서식을 연장하면 Z12345678-001과 같은 주문 번호를 얻을 수 있습니까?

+1

사용해 보는 것은 어떨까요? [여기에 예제가있다] (http://ideone.com/1ASb7y). –

+0

항상 'Z'일까요? 그렇다면 형식 문자열의 일부로 Z를 그대로두면 성능이 향상됩니다. –

+0

그 밖의 모든 것이 실패하면 [문서를 읽으십시오] (http://msdn.microsoft.com/en-us/library/0c899ak8.aspx#NotesCustomFormatting). "숫자에 소수점 왼쪽에 숫자 자리 표시자가있는 것보다 많은 자릿수가있는 경우 여분의 숫자가 첫 번째 자리 표시 자 바로 앞에 결과 문자열에 복사됩니다." –

답변

3

동일한 서식 (예 : Z 1234567 - 000)을 유지하면서 첫 번째 숫자 집합 (1-7)이 최소 7 일 수 있습니다 (길이가 7보다 작은 숫자는 0을 선두로 나타냄).). 그런 다음 Z12345678-001과 같은 주문 번호를 얻을 수 있도록 길이가 7보다 큰 항목을 그냥 포맷팅하십시오.

당신이 가지고있는 코드를 그대로 사용하십시오.

+1

좋아요, 나는 그것이 있어야 할 길이에 엄격한 제한이 있는지 확실하지 않았습니다. 감사. –

+0

@ 브렛 왜 당신은 간단하게 [그것을 시도해보십시오] (http://stackoverflow.com/questions/18857950/how-does-string-format-work-in-this-situation/18857969?noredirect=1#comment27826183_18857950)) 그리고 너 자신을 위해보십시오. – Servy