我想知道是否可以将字符串转换为int格式。
例如:我需要将textbox值存储到int类型的变量状态。
那么,是否可以存储它..?
我的输入值是字符串“Chennai”,如果我使用int.Parse(textbox1.text)传递它,则表明输入字符串的格式不正确。
int state=textbox1.text;
答案 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.Parse
或int.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,
}
并且您希望将所选值转换为整数: 用这个:
MyEnum val;
if (Enum.TryParse(textbox1.Text, out val))
{
int myIntVal = (int)val; // myIntVal = 1
}
else
{
// error
}
编辑前:
使用:
int val = int.Parse(textbox1.Text);
由于@huMpty duMpty的请求而编辑:
如果您不确定文本框的输入值,请使用int.TryParse:
int val;
if(int.TryParse(textbox1.Text, out val))
{
// val is a number
}
else
{
// val isn't a number
}
答案 2 :(得分:0)
int state;
int.TryParse(textbox1.text, out state);