簡體   English   中英

從字符串中查找和解析值

[英]find and parse values from string

我有一個字符串,我正在嘗試從中解析值。 格式為"43,56,12,ddl=345"

我試圖將ddl值( 345 )存儲在單獨的變量中,然后將其他數字存儲在列表中。

List<int> nums = new List<int>();
int? ddlValue;

我該怎么辦?

您可以嘗試將字符串解析為ints,然后對要存儲的任何其他值進行特殊檢查。

var sNums = "43,56,12,ddl=345";

List<int> nums = new List<int>();
int? ddlValue;

foreach (var t in sNums.Split(',')) {
    int u;
    if (int.TryParse(t, out u)) {
        nums.Add(u);
    } else {
        ddlValue = t.Split("=")[1];
    }
}

你可以做:

var sNums = "43,56,12,ddl=345".Split(',');

var ddl = int.Parse(sNums.First(s => s.Contains("ddl")).Replace("ddl=", ""));
var numbers = sNums.Where(s => !s.Contains("ddl")).Select(int.Parse);

*注意-這將比單循環執行效率低一些-但IMO更具可讀性。

您可以執行以下操作:

List<int> nums=new List<int>();
int intVariable = 0;
string s = "43,56,12,ddl=345";
string[] split=s.Split(',');
Regex regex = new Regex(@"^\d+$");
foreach(var element in split)
  if(regex.IsMatch(element))
      nums.Add(Convert.ToInt32(element));
  else
  {
       intVariable = element.Split("=")[1];
  }

我的意思是最簡單的方法是拆分和替換。

  string values = "43,56,12,ddl=345";

        string[] values1 = values.Split(',');

        foreach (var x in values1)
        {
            list.Add(x);
        } 

  string myvalue = values.Split(',')[3];
  myvalue = myvalue.Replace("ddl=","");

假設您每次都將獲得相同的格式。 也許更多信息?

編輯-

如果您不總是有3個數字,則ddl =然后是字符串myvalue = values.Split(',')[3];。 不管用。 有一些簡單的方法可以解決

    string myvalue = values.Split(',')[values1.Count() - 1]

暫無
暫無

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

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