如果<10,则在数字前加0

Csh*_*rpz 11 c# if-statement

这是我的代码:

string Unreadz = "0";
while (true)
{
    Unreadz = CheckMail();       
    if (!Unreadz.Equals("0")) port.Write("m");
    else port.Write("n");
}
Run Code Online (Sandbox Code Playgroud)

如果Unreadz小于10,我想在0之前添加一个port.write.

这是我尝试过的:

if (Unreadz < 10) port.Write("0" + Unreadz);
else port.Write("" + Unreadz);
Run Code Online (Sandbox Code Playgroud)

但它不起作用,因为它Unreadz是一个字符串.

Sha*_*ard 21

这应该工作:

port.Write(Unreadz.ToString().PadLeft(2, '0'));
Run Code Online (Sandbox Code Playgroud)


seh*_*ehe 6

string.Format("{0:00}", 9);
Run Code Online (Sandbox Code Playgroud)

另见http://msdn.microsoft.com/en-us/library/0c899ak8(v=VS.71).aspx

您可以更直接地:

  9.ToString("00"); // "09"
 19.ToString("00"); // "19"
119.ToString("00"); // "119"
Run Code Online (Sandbox Code Playgroud)


Joe*_*Joe 5

尝试

if (Convert.ToInt32(Unreadz) < 10) port.Write(string.format("{0}{1}", "0", Unreadz);
Run Code Online (Sandbox Code Playgroud)

或者,

if (Unreadz.length == 1 ) ...
Run Code Online (Sandbox Code Playgroud)


小智 5

如果您有一个整数,ToString 方法将帮助您:

int i = 5;
string formatted = i.ToString("00");
Run Code Online (Sandbox Code Playgroud)

格式化将是05 您可以根据需要为任意数量的 '0' 执行此操作,如果您的结束字符串不同,还可以添加额外的字符:

int minutes = 2, seconds = 3;
int timeSum = minutes * 100 + seconds;
string time = timeSum.ToString("00m00s");
Run Code Online (Sandbox Code Playgroud)

时间将是02m03s


Sha*_*fiz 2

如果保证返回值为字符串表示的整数,那么可以将其转换为数字然后进行比较。

if ( Convert.ToInt32(Unreadz) < 10 ) port.Write("0" + Unreadz);
else port.Write("" + Unreadz);
Run Code Online (Sandbox Code Playgroud)