add 0 before number if < 10

本文关键字:lt if before number add | 更新日期: 2023-09-27 18:06:15

这是我的代码:

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

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

这就是我尝试过的:

if (Unreadz < 10) port.Write("0" + Unreadz);
else port.Write("" + Unreadz);

但它不起作用,因为CCD_ 5是一个字符串。

add 0 before number if < 10

这应该有效:

port.Write(Unreadz.ToString().PadLeft(2, '0'));
string.Format("{0:00}", 9);

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

您可以更直接地:

  9.ToString("00"); // "09"
 19.ToString("00"); // "19"
119.ToString("00"); // "119"

尝试

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

或者,

if (Unreadz.length == 1 ) ...

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

int i = 5;
string formatted = i.ToString("00");

格式化为05您可以对任意数量的"0"执行此操作,如果结束字符串不同,还可以添加额外的字符:

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

时间将02m03s

首先,Unreadz应该是一个int,而不是字符串

然后你可以写:

        int Unreadz;
        while (true)
        {
            Unreadz = CheckMail(); //Change this to return an int
            string formattedNumber = String.Format("{0:##}", Unreadz.ToString());
            port.Write(formattedNumber); 
        }

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

if ( Convert.ToInt32(Unreadz) < 10 ) port.Write("0" + Unreadz);
else port.Write("" + Unreadz);

您需要将字符串转换为数字来进行小于10:的测试

// this will throw an exception if the string does not contain a number
int unreadzNumber = int.Parse(Unreadz);

如果你确信字符串只包含一个数字,而没有其他数字,你可以测试它的长度是否为1:

bool isLessThanTen = Unreadz.Length == 1;

你可以用各种不同的方式进行格式化:

// 1: just stick a zero before it
string formatted = string.Format("0{0}", unreadzNumber);
// 2: use a special format string to use at least two digits
string formatted = string.Format("{0:00}", unreadzNumber);
// 3: pad the string with zeros to the left
string formatted = Unreadz.PadLeft(2, '0');
// 4: manually concatenate with "0"
string formatted = "0" + Unreadz;
// and probably others

我更喜欢第二个,因为它使格式更清晰、更容易维护,而且不需要比较。

所以,你得到:

   string Unreadz = "0";
    while (true)
    {
        Unreadz = CheckMail();       
        int unreadzNumber = int.Parse(Unreadz);
        port.Write(string.Format("{0:00}", unreadzNumber));
    }

如果Unreadz是一个字符串,那么要进行比较,必须将其转换为int。

if(Unreadz<10(到if(Convert.ToInt16(Unreadz(<10(

尝试定义int unreadz,然后使用port.Write(string.Format("{0:00}", unreadz)