【发布时间】:2021-07-10 00:19:06
【问题描述】:
所以我有一个名为 isNumber 的布尔变量。
bool isNumber(string Text)
{
bool Answer = true;
string Number = "1234567890";
bool ANumber = false;
for(int j = 0; j <Text.Length; j++)//loop for each char in string Text
{
for (int i = 0; i < Number.Length; i++)//loop for each char in the "Number" variable
{
if (Text[j] == Number[i]) //←System.IndexOutOfRangeException: 'Index was outside the bounds of the array.
{
ANumber = true;
}
}
if (!ANumber)
{
Answer = false;
}
}
return Answer;
}
它的作用是检查一个字符串,如果字符串都是数字则返回true 如果字符串中有非数字字符,则返回 false。
但在循环中,有一个错误提示 indexOutOfRange,但我很确定它不是。那么如何修复这个变量呢?
或者如果您有更好的工作变量来检查字符串是否为数字,请让我知道 :) 谢谢您的帮助。 另外,如果您对本论坛的标题有任何建议,请告诉我,我会修改名称。
【问题讨论】:
-
这个函数可以写成
static bool IsNumber(string text) => text.All(c => "1234567890".Contains(c)); -
或
IsNumber(string text) => text.All( c => char.IsDigit(c) );