将字符串转换为整数

发布于 2024-07-21 21:20:23 字数 954 浏览 3 评论 0原文

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

我下面的代码顺序正确吗? 这似乎给出了一个错误。

    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();
    }

I need help with my code. I would like to write only numbers/integers in my textbox and would like to display that in my listbox.

Is my code below in order? This seems to give an error.

    int yourInteger;
    string newItem;

    newItem = textBox1.Text.Trim();

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

====
Update:

This is how my code looks like now. My question is, can listBox handle the data type "long"? Because when I entered the number 20,000,000 I just got an hour glass for 20 minutes. But when I tried this one with the console, I got the answer. So I'm not sure what kind of element can handle data type "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();
    }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

滴情不沾 2024-07-28 21:20:23
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
int result = int.Parse(textBox1.Text.Trim());

If you want to check for validity:

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
云仙小弟 2024-07-28 21:20:23

使用这个:

    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。

Use this:

    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";
    }

This assumes you have a customValidator.

等数载,海棠开 2024-07-28 21:20:23

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

Use int.TryParse() to check if string contains integer value.

渔村楼浪 2024-07-28 21:20:23

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

textBox1.Text may not contain a valid string representation of an integer (or is just an empty string). To work around that, use Int32.TryParse().

任谁 2024-07-28 21:20:23

您可以这样做:

Convert.ToInt32(input);

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

基本上它会检查字符串是否为空,然后它将调用int.Parse。 这也可以在没有 int.TryParse 的 WindowsCE 下运行。

You can do:

Convert.ToInt32(input);

For a longer function using this you can look at:
http://msdn.microsoft.com/en-us/library/bb397679.aspx

Basically it checks if the string is null, then it will call int.Parse. This will work under WindowsCE also, which doesn't have int.TryParse.

谜兔 2024-07-28 21:20:23

具体来说,您的代码无法编译的原因是您正在将字符串 (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);

To be specific as to why your code fails to compile it is because you are comparing a string (newItem) against the result of Convert.ToInt32, which is an integer, which it wont let you do. Also Convert.ToInt32 will raise an exception it the string passed in is not a number.

You can try using int.TryParse, or alternatively write a simple regular expression to validate your input:

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

or

bool isInteger = System.Text.RegularExpressions.Regex.IsMatch("^\d+$", textBox1.Text);
星星的轨迹 2024-07-28 21:20:23

您正在检查空字符串吗?

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

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

Are you checking for an empty string?

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

if(newItem != string.Empty)
{
   if ( newItem == Convert.ToInt32(textBox1.Text))
   {
      listBox1.Items.Add(newItem);
   }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文