2013-03-14 4 views
4

I мое приложение по какой-то причине у меня есть два номера в 5 цифр.Приращение номера от строкового значения

Следующий код дает вам краткое описание.

string s = "00001"; // Initially stored somewhere. 
//Operation start 
string id = DateTime.Now.ToString("yy") + DateTime.Now.AddYears(-1).ToString("yy") + s; 
//Operation end 

//Increment the value of s by 1. i.e 00001 to 00002 

Это может быть сделано легко преобразовать значение s в целое и увеличиваем его на 1, но после того, как все, что я должен хранить измененное значение с в 5 цифр, так что будет " 00002 ".

Это кажется, дают мне боль ...

+1

Что ваш вопрос? – ken2k

+0

Я не понял, является ли сохранение строки «0000x» или вашей болью. – Larry

ответ

11

использование

string s = "00001"; 
int number = Convert.ToInt32(s); 
number += 1; 
string str = number.ToString("D5"); 

, чтобы получить по крайней мере 5 цифр.

The "D" (or decimal) format specifier

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

+0

@peer, спасибо за редактирование :) – Habib

+1

Если любящие чувства Хабиба неверны, я не хочу быть прав :) –

+1

так мило с твоей стороны @ SonerGönül – Habib

5

Это, похоже, работает на меня.

string s = "00001"; 
int i = Int32.Parse(s); 
i++; 
s = i.ToString("D" + s.Length); 
1

Так что я думаю, что вы хотите знать, как преобразовать int к 5-значный string.

Вы можете сделать это:

int i = 1; 
string s = i.ToString("D5"); 
//s = "00001" 

Есть много format examples here.

0

Использование String.Format() для достижения этой цели:

string str = String.Format({0:#####}, s); 

Look here.

0

Это работает с использованием PadLeft функции:

int i = 1; // Initially stored somewhere. 
//Operation start 
string id = DateTime.Now.ToString("yy") + DateTime.Now.AddYears(-1).ToString("yy") + i.ToString().PadLeft(5, '0'); 
//Operation end 
Смежные вопросы