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是一个字符串。
这应该有效:
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)