【问题标题】:How to make sure that a 4 number input is 4 getting numbers? [duplicate]如何确保 4 个数字输入是 4 个获取数字? [复制]
【发布时间】:2014-02-10 17:05:32
【问题描述】:

我的输入是 1900-3000 之间的 4 位数年份。所以输入必须是 4 位数字 1994, 2022,2950。

但是,如何检查输入是否只有 3 位或更少或 5 位或更多? 如果超过 1900 或 3000,我已经做了 if 语句。

   if (YearNumb<1900 || YearNumb>3000)
        {
            Console.WriteLine("Du angav inte ett år mellan 1900 och 3000.");
            Console.ReadLine();
            return;

【问题讨论】:

  • if(yearNumb &lt; 1000 || yearNumb &gt; 9999)
  • YearNumb是什么类型?
  • 它是一个从字符串转换而来的int

标签: c# input numbers digits


【解决方案1】:
if (YearNumb<1900 || YearNumb>3000)
        {
            Console.WriteLine("Du angav inte ett år mellan 1900 och 3000.");
            Console.ReadLine();
            return;
        }
else if (YearNumb.ToString().Length != 4)
           {
            Console.WriteLine("text");
            Console.ReadLine();
            return;
        } 

转换为字符串并检查长度。

【讨论】:

  • 不能正常工作,输入1700就不会执行。
  • 糟糕,已在上面进行了编辑以解决该问题并能够显示不同的消息。
  • @Baxtex,不可能输入第二个if。这是一个毫无意义的ToString() 调用,然后是冗余长度检查。如果YearNumbint,则它不能介于19003000 之间,并且长度不能不同于4。除非,我想,你所在的文化对数字有非十进制表示。
【解决方案2】:

好的,

if (YearNumb < 0)
{
    ...
} 
else if (YearNumb < 1000)
{
    ...
}
else if (YearNumb > 9999)
{
    ...
}
else if (YearNumb < 1900 || YearNumb > 3000)
{
    ...
}

可能更像您正在寻找的东西。

【讨论】:

  • 3 或 5 个字符的数字将通过 int.tryparse
  • @user1948635 但是,解析后的值不会大于1899 且小于3001。所以valid 将保持false,除非input 有效。
猜你喜欢
  • 2014-03-12
  • 2018-03-29
  • 1970-01-01
  • 2021-05-17
  • 1970-01-01
  • 1970-01-01
  • 2016-05-31
  • 2023-01-30
  • 2012-06-21
相关资源
最近更新 更多