【发布时间】:2020-01-13 00:57:31
【问题描述】:
需要帮助,无法弄清楚如何将其验证为二进制文件。任何帮助表示赞赏我知道我是一个菜鸟。
试过了……效果不太好
// } while (binaryStringIsValid(binaryStr) == false);
//static bool binaryStringIsValid(string binaryStr)
//{
// bool valid = false;
// foreach (char ch in binaryStr)
// {
// if (ch != '0' && ch != '1')
// {
// Console.WriteLine("String Is Invalid");
// }
// }valid = binaryStr.Length < 9;
// return valid;
//}
{
int digits = 0;
string binaryStr = "";
int sum = 0;
int remainder;
int po2 = 0;
Console.WriteLine("Enter a valid binary string: ");
digits = Convert.ToInt32(Console.ReadLine());
while (digits > 0)
{
remainder = digits % 10;
sum = sum + remainder * Convert.ToInt32(Math.Pow(2, po2));
po2 = po2 + 1;
digits = digits / 10;
}
Console.WriteLine("Your binary string is equal to the decimal
number: " + sum);
Console.ReadKey();
}
我需要确保它只有 0 和 1,并且长度为
【问题讨论】:
-
检查this answer。这是关于如何验证和解析,但没有长度检查。
-
嗯,
if (remainder > 1) throw ...。 -- 你也可以在转换为int之前检查输入字符串。 -
bool valid = binaryStr.Length < 9 && binaryStr.All(ch => ch == '0' || ch == '1'); -
do { Console.WriteLine("请输入有效的二进制字符串:"); binaryStr = Console.ReadLine(); } while (binaryStrIsValid(binaryStr) == true); Console.WriteLine("一个有效的字符串");
-
它只是没有捕捉到非二进制条目。我觉得自己像个白痴哈哈。感谢您的快速回复。
标签: c# validation binary