【问题标题】:Check a string if it was a number C# :] [duplicate]检查字符串是否是数字 C# :] [重复]
【发布时间】: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,但我很确定它不是。那么如何修复这个变量呢?

或者如果您有更好的工作变量来检查字符串是否为数字,请让我知道 :) 谢谢您的帮助。 另外,如果您对本论坛的标题有任何建议,请告诉我,我会修改名称。

【问题讨论】:

标签: c# arrays string boolean


【解决方案1】:
string text = "12345678909876543234a";    

for(int j = 0; j < Text.Length; j++)
{
    if(!char.IsNumber(Text[j]))
    {
        return false;
    }
}
return true;

【讨论】:

  • 请添加解释。见how to answer
  • 计算机正在检查而不是 10 次(每个数字 1)它将两次(47 > char
  • 计算机正在检查而不是 10 次(每个数字 {1、2、3、4、5、6、7、8、9、0} 1 次)它只会检查两次(在"十二月" { 47 58 } ) .
  • edit your answer。它将比 cmets 更具可读性。谢谢。
【解决方案2】:

您将ji 打错了:

if (Text[j] == Number[i])

【讨论】:

    猜你喜欢
    • 2018-10-17
    • 2015-05-22
    • 2023-03-31
    • 2011-10-24
    • 2016-02-18
    • 1970-01-01
    • 2011-11-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多