2013-05-30 1 views
4

Я должен исправить искаженные zipcodes. Люди, которые экспортировали данные, обрабатывали zipcode как числовые и, как результат, почтовые индексы Нью-Джерси и Пуэрто-Рико, которые начинаются с начального нуля и двух ведущих нулей соответственно, были усечены.Простой и элегантный способ ноль-pad значение в C#

Предполагается, что у них должно быть все пять символов (данные не связаны с zip + 4). Я знаю, как использовать грубую силу с нулевой загрузкой, получая длину и добавляя соответствующее количество нулей в строку, но есть ли более элегантный способ, который опирается на «родные» функции C#? Например, может ли применяться маска, которая превратила бы «9163» в «09163» и «904» в «00904» без моей необходимости получить длину значения?

+2

BTW: должен быть дубликат несколько раз. .... –

+0

http://stackoverflow.com/questions/3122677/add-zero-padding-to-a-string, http://stackoverflow.com/questions/4325267/c-sharp-convert-int-to-string-with-padding-zeros, http://stackoverflow.com/questions/3459610/pad-with-leading-zeros, http://stackoverflow.com/questions/11901395/pad-left-with-zeroes и т. д., вы действительно надеетесь, что администратор будет искать в первую очередь! ;) –

ответ

6

Если у вас есть целое значение, используйте составную строку формата, чтобы обеспечить заполнение:.

var padded1 = 1.ToString("D5"); 

Число после D для длины вам нужно значение, чтобы быть в

+0

Спасибо, он работает, когда исходное строковое значение было усечено и превращено в числовое число, как в моем сценарии. – Tim

2
string one = a.ToString("00000"); // 00904 
+0

Спасибо, мне легче всего запомнить. – Tim

8
string test = "9163"; 
test = test.PadLeft (5, '0'); 
+0

'string paddedString = test.PadLeft (5, '0');' – stuartd

+0

Спасибо, он работает, когда усеченное значение является строкой. – Tim

2
string s = string.Format("{0:00000}", 1234); 

    Console.WriteLine(s); 

Format String Reference

+0

Благодарим вас за подход строковой маски. – Tim

 Смежные вопросы

  • Нет связанных вопросов^_^