拆分一串数字和单词c#

时间:2012-10-04 00:10:40

标签: c# split

您好我想拆分一个由空格和1010 FirstName MidName LastName形式分隔的字符串,并在C#MVC4控制器中使用整数1010此字符串将从隐藏的表单元素解析为控制器

 var str = "1010 Firstname Midname LastName";

            string[] parts = str.Split(' ');
            if (parts != null)
            {
                int idpart = parts[0];
            }

我得到的错误不能隐式地将类型字符串转换为int 提前致谢

5 个答案:

答案 0 :(得分:0)

var str = "1010 Firstname Midname LastName";              
string[] parts = str.Split(' ');             
if (parts != null)             
{                 
    int idpart = Convert.ToInt32(parts[0]);
    string firstpart = parts[1];             
    string midpart = parts[2];
    string lastpart = parts[3];
} 

答案 1 :(得分:0)

使用Split方法 - 获取一个分隔符字符数组并返回一个字符串数组。

private static char[] splitArray = { ' ' };
string[] results = input.Split(splitArray);

答案 2 :(得分:0)

异常是由以下行引起的:

int idpart = parts[0];

因为parts [0]将是一个字符串,你不能直接将它分配给一个int。

你需要告诉它将字符串解析成这样的int:

int idpart = int.Parse(parts[0]);

请注意,如果您传递的字符串格式不是解析器可以转换为整数,那么这将引发异常,因此您需要将某种形式的异常处理放入或使用int.TryParse method

答案 3 :(得分:0)

你不能简单地将字符串转换为int,你必须使用int.Parse()

显式转换
string str = "1010 FirstName MidName LastName";
var splits = str.Split(' ');
var number = int.Parse(splits[0]);

答案 4 :(得分:0)

最好使用int.TryParse()..不会抛出任何异常。

var str =" 1010 Firstname Midname LastName&#34 ;;

            var splittedData = str.Split(' ');

            if (splittedData != null && splittedData.Length > 0)
            {
                int _number;

                if (!int.TryParse(splittedData[0], out _number))
                {
                    Console.WriteLine("Not a number");
                }
                else
                {
                    Console.WriteLine("Got this number - {0}", _number);
                }
            }

            Console.ReadLine();