将字符串转换为整数

时间:2009-05-20 12:21:03

标签: c# .net string integer

我的代码需要帮助。我想在我的文本框中只编写数字/整数,并希望在我的列表框中显示它。

我的代码是否按顺序排列?这似乎给出了错误。

    int yourInteger;
    string newItem;

    newItem = textBox1.Text.Trim();

    if (newItem == Convert.ToInt32(textBox1.Text))
    {
        listBox1.Items.Add(newItem);
    }

==== 更新:

这就是我的代码现在的样子。我的问题是,listBox可以处理数据类型“long”吗?因为当我输入数字20,000,000时,我只得到一小时玻璃20分钟。但是当我用控制台尝试这个时,我得到了答案。所以我不确定哪种元素可以处理数据类型“long”。

    string newItem;
    newItem = textBox1.Text.Trim();

    Int64 num = 0;
    if(Int64.TryParse(textBox1.Text, out num))
    {
        for (long i = 2; i <= num; i++)
        {
            //Controls if i is prime or not
            if ((i % 2 != 0) || (i == 2))
            {
                listBox1.Items.Add(i.ToString());
            }

        }
    }


    private void btnClear_Click(object sender, EventArgs e)
    {
        listBox1.Items.Clear();
    }

7 个答案:

答案 0 :(得分:14)

int result = int.Parse(textBox1.Text.Trim());

如果您想检查有效性:

int result;
if (int.TryParse(textBox1.Text.Trim(), out result)) // it's valid integer...
   // int is stored in `result` variable.
else
   // not a valid integer

答案 1 :(得分:3)

使用此:

    int yourInteger;
    string newItem;

    newItem = textBox1.Text.Trim();
    Int32 num = 0;
    if ( Int32.TryParse(textBox1.Text, out num))
    {
        listBox1.Items.Add(newItem);
    }
    else
    {
        customValidator.IsValid = false;
        customValidator.Text = "You have not specified a correct number";
    }

这假设您有一个customValidator。

答案 2 :(得分:1)

使用int.TryParse()检查字符串是否包含整数值。

答案 3 :(得分:0)

textBox1.Text可能不包含整数的有效字符串表示形式(或者只是一个空字符串)。要解决此问题,请使用Int32.TryParse()

答案 4 :(得分:0)

你可以这样做:

Convert.ToInt32(input);

对于使用此功能的较长功能,您可以查看: http://msdn.microsoft.com/en-us/library/bb397679.aspx

基本上它检查字符串是否为null,然后它将调用int.Parse。这也适用于WindowsCE,它没有int.TryParse。

答案 5 :(得分:0)

具体到为什么你的代码无法编译它是因为你正在比较一个字符串(newItem)和Convert.ToInt32的结果,这是一个整数,它不会让你这么做。此外,Convert.ToInt32将引发一个异常,即传入的字符串不是数字。

您可以尝试使用int.TryParse,或者编写一个简单的正则表达式来验证您的输入:

int i;
bool isInteger = int.TryParse(textBox1.Text,out i);

bool isInteger = System.Text.RegularExpressions.Regex.IsMatch("^\d+$", textBox1.Text);

答案 6 :(得分:-1)

你要检查一个空字符串吗?

int yourInteger;
string newItem;
newItem = textBox1.Text.Trim();

if(newItem != string.Empty)
{
   if ( newItem == Convert.ToInt32(textBox1.Text))
   {
      listBox1.Items.Add(newItem);
   }
}