廢話不多說,直接進入正題:
問題是:是這樣的字符串,"dfsdg<2434>,dgdfg<35346>,dtr35<3w543>",提取"<"和">"裡面的內容?
對於這樣問題首先我們思路應該就是先把她們分組出來,然後再去判斷這對尖括號的位置,找到後,截取出來就 可以了。於是我分別用之前提出來的兩種方式 來實現,如下:
1、原始字符串截取方式,示例代碼如下:
復制代碼 代碼如下:
string str="dfsdg<2434>,dgdfg<35346>,dtr35<3w543>";
string[] strGroup=str.Split(',');
foreach(var s in strGroup)
{
int left=s.IndexOf('<');
int right=s.LastIndexOf('>');
s.Substring(left+1,right-left-1);
Console.WriteLine(s);
}
運行結果如下:
2434
35346
3w543
2、應用語言集成查詢(LINQ),示例代碼如下:
復制代碼 代碼如下:
string str="dfsdg<2434>,dgdfg<35346>,dtr35<3w543>";
var result=from s in str.Split(',')
let left=s.IndexOf('<')
let right=s.LastIndexOf('>')
select s.Substring(left+1,right-left-1);
result.Dump();
運行結果如下:
第二種調試的工具是采用LINQPad來調試的。對於第二種裡面的let關鍵字,幫助文檔的解釋如下:
let 關鍵字可以創建一個新的范圍變量,並且用您提供的表達式的結果初始化該變量。一旦用值初始化了該范圍變量,它就不能用於存儲其他值。但如果該范圍變量存儲的是可查詢的類型,則可以對其進行查詢。
好了,對於這個問題我就總結到這裡了,希望對他人有幫助,也歡迎大家有更好的方法和思路來解決這個問題的,歡迎大家留言,本人將感激不盡!