可以将String格式转换为整数..?

时间:2014-04-25 09:17:37

标签: asp.net c#-4.0 textbox

我想知道是否可以将字符串转换为int格式。

例如:我需要将textbox值存储到int类型的变量状态。
那么,是否可以存储它..?

我的输入值是字符串“Chennai”,如果我使用int.Parse(textbox1.text)传递它,则表明输入字符串的格式不正确。

int state=textbox1.text;

3 个答案:

答案 0 :(得分:3)

现在我们有更多信息

听起来你根本不想解析数字字符串,这是对原始问题的明显解释。

如果你想字符串映射到一个数字,你需要某种预定义的地图,例如

private static readonly Dictionary<string, int> StateNameMap = new
    Dictionary<string, int>() {
    { "New Jersey", 1 },
    { "California", 2 },
    ...
};

然后你可以使用:

int state;
if (StateNameMap.TryGetValue(textbox1.Text, out state))
{
    // Success
}
else
{
    // Input was not a known state name. What do you want to do?
}

原始回答

您当然可以使用int.Parseint.TryParse将字符串解析为整数。例如:

// This will just throw an exception if the text is not a valid int
int state = int.Parse(textbox1.Text);

或者:

int state;
if (int.TryParse(textbox1.Text, out state))
{
    // Success! Use state
}
else
{
    // Invalid text - what do you want to do?
}

这是在.NET中解析的常见模式,包括DateTime和其他数字类型。

你还应该考虑你期望这个数字的文化 - 对于整数问题而不是非整数值的问题,但仍需要考虑。

答案 1 :(得分:1)

编辑后:
看起来你正在寻找字典映射器,因为Jon Skeet在他的帖子上显示,或者一个枚举(如果你的字符串在措辞上):

    enum MyEnum
    {
      Chennai = 1,
      ABCD = 2,
    }

并且您希望将所选值转换为整数: 用这个:

Enum.TryParse

    MyEnum val;
    if (Enum.TryParse(textbox1.Text, out val))
    {
        int myIntVal = (int)val; // myIntVal = 1
    }
    else
    { 
        // error
    }

编辑前:

使用:

int.Parse

int val = int.Parse(textbox1.Text);

由于@huMpty duMpty的请求而编辑:
如果您不确定文本框的输入值,请使用int.TryParse:

int.TryParse

int val;
if(int.TryParse(textbox1.Text, out val))
{
   // val is a number
}
else
{
   // val isn't a number
}

答案 2 :(得分:0)

使用Int32.TryParse

int state;

int.TryParse(textbox1.text, out state);