C# 在C语言中将字符串分隔为多个项#
我有以下代码C# 在C语言中将字符串分隔为多个项#,c#,.net,visual-studio-2010,C#,.net,Visual Studio 2010,我有以下代码 string tString; int flNum; string flLeg; tString = "25664-A"; 我需要把tString转换成两个变量,flNum和flLeg。 我想要的结果是-flNum=25664 flLeg=A 我的尝试失败了- flNum = Convert.ToInt32(tString.Substring(tString.IndexOf("-") - 1)); flLeg = tString.Substring(tStr
string tString;
int flNum;
string flLeg;
tString = "25664-A";
我需要把tString转换成两个变量,flNum和flLeg。
我想要的结果是-flNum=25664 flLeg=A
我的尝试失败了-
flNum = Convert.ToInt32(tString.Substring(tString.IndexOf("-") - 1));
flLeg = tString.Substring(tString.IndexOf("-") + 1, 1);
但我错了。关于如何更改此代码以获得我想要的结果,有什么建议吗
谢谢你的帮助
string[] parts = tString.Split('-');
flNum = int.Parse(parts[0]);
flLeg = parts[1];
根据tString
的内容,调用Int32.Parse
可能会引发FormatException
,因此Int32.TryParse
可能是更好的选择。为了简洁起见,我只使用Parse
根据
tString
的内容,调用Int32.Parse
可能会引发FormatException
,因此Int32.TryParse
可能是更好的选择。为了简洁起见,我只使用了Parse
。您可以简单地使用string.Split()方法
在代码中,会出现错误,因为对于第一个子字符串,需要传递起点和长度
flNum = Convert.ToInt32(tString.Substring(0, tString.IndexOf("-")));
您可以正确找到破折号的位置,但此位置作为子字符串的起点传递,但没有从传递的位置开始的数字,因此转换失败
(删除长度的-1,因为这是一个长度而不是位置)您可以简单地使用string.Split()方法 在代码中,会出现错误,因为对于第一个子字符串,需要传递起点和长度
flNum = Convert.ToInt32(tString.Substring(0, tString.IndexOf("-")));
您可以正确找到破折号的位置,但此位置作为子字符串的起点传递,但没有从传递的位置开始的数字,因此转换失败
(并删除长度的-1,因为这是一个长度而不是位置)
string[] parts = tString.Split('-');
if (parts.Length == 2)
{
flLeg = parts[1];
if (int.TryParse(parts[0], out flNum )
{
//All good
}
else
{
//Handle problem
}
}
else
{
//Handle problem
}