2017-07-31 94 views
0

嗨,我想獲得一個字符串中的位置並將該值分配給一個變量。如何獲取字符位置並使用C#將字符串賦值給字符串?

String PrintType= "3in" 
String val ="A4-Format1,A5-Format2,3in-Format3,4in-Format4"; 

現在,這是我的字符串。在這裏,我想找到3in的位置,然後我想找到3in-Format3的逗號(,)的位置。現在獲得第一個和最後一個位置後,我想將第一個和最後一個位置內的值分配給一個變量。

例如現在第一現在的位置是22(「3)和上次位置爲3(3英寸-Format3(,))是33.After找到我想該值分配給一個變量

第一個和最後一個位置

var type = "3in-Format3" 

現在我發現通過

String PrintType= "3in" 
String val ="A4-Format1,A5-Format2,3in-Format3,4in-Format4"; 
    String a = val.IndexOf(PrintType); 

第一現在的位置是現在,我想找到的最後一個位置的第一和最後的位置之間的值賦給變量。我累了我來最好水平解釋我的問題。請任何人瞭解我的問題並幫助我解決此問題。

高級謝謝。

+0

聽起來像一個正則表達式;但你的解釋是超級混亂(我不擅長正則表達式) – BradleyDotNET

+0

不是一個解決方案,但idk爲什麼你使用'String',應該是'string'。 – jdmdevdotnet

+0

你應該能夠將['String.IndexOf'](https://msdn.microsoft.com/en-us/library/system.string.indexof(v = vs.110).aspx)去那裏, –

回答

3

您有一串字符串,它是由,分隔的一串字符串。首先,分開子串:

string[] formats = val.Split(',');

現在,發現格式字符串要:

string threeInchFormat = formats.First(formatString => formatString.StartsWith("3in"));

+0

好吧,讓我檢查你的答案,讓你知道 –

2

IndexOf可以採用開始索引參數,在查找逗號時需要使用該參數。您可以使用這兩個索引來呼叫Substring,例如

var startIdx = val.IndexOf(PrintType); 
var endIdx = val.IndexOf(',', startIdx); 

var type = val.Substring(startIdx, endIdx - startIdx); 

但是,你真正的問題可能是如何在val首先存儲數據(例如與一本字典)。

4

您可以在LINQ

var formats = "A4-Format1,A5-Format2,3in-Format3,4in-Format4"; 

var parts = from format in formats.Split(',') 
      let formatParts = format.Split('-') 
      select new 
      { 
       Size = formatParts[0], 
       Format = formatParts[1], 
      }; 

var format3Size = parts.FirstOrDefault(p => p.Format == "Format3").Size; 
var formatForSize = parts.FirstOrDefault(p => p.Size == "3in").Format; 
+0

好吧讓我檢查你的答案,讓你知道 –

3

寫一個簡單的解析器如果打印類型出現在行多個字段,你可以這樣來做。

// multiple fields may have the PrintType 
var fields = val 
    .Split(',') 
    .Where(x => x.IndexOf(PrintType, StringComparison.InvariantCultureIgnoreCase) >= 0); 

// first field in the list will be now in the variable  
var a = fields.FirstOrDefault(); 
+0

它顯示錯誤附近Val.split –

+0

請複製/粘貼錯誤在這裏。 –

+0

現在它沒有顯示錯誤。它現在得到的價值是如何獲得價值,並在varibale中分配該值。例如,我需要Var a =「3in-Format3」 –