簡體   English   中英

分割一串數字和單詞C#

[英]Split a string of number and words c#

嗨,我想分割一個用空格分隔的字符串,其形式為1010 FirstName MidName LastName並在C#MVC4 Controller中使用整數1010。此字符串將從隱藏的表單元素解析為控制器

 var str = "1010 Firstname Midname LastName";

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

我收到錯誤,無法將類型字符串隱式轉換為int預先感謝

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

使用Split方法-接受分隔符數組並返回字符串數組。

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

異常是由以下行引起的:

int idpart = parts[0];

因為parts [0]將是一個字符串,並且您不能直接將其分配給int。

您需要告訴它將字符串解析為一個int,如下所示:

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

請注意,如果您傳遞的字符串格式不符合解析器可以轉換為整數的格式,則這將引發異常,因此您將需要使用某種形式的異常處理或使用int.TryParse方法

您不能簡單地將字符串轉換為int,而是必須使用int.Parse()進行顯式轉換

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

最好使用int.TryParse()。不會引發任何異常。

var str =“ 1010名中間名姓”;

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM