2016-11-09 153 views
0

我需要解析字符串從NHRM__Location__cLocation。我覺得很愚蠢,因爲這不是我的第一個牛仔競技表演。我不想在數組中添加代碼。 NHRM是一個命名空間,可能會根據誰在使用它而發生變化,因此在某些時候會是app.config文件中的一個鍵。解析字符串中的字符

我在想把__這個字符串分開,然後把剩下的字加載到一個字符數組中並修剪掉那個人,但是我覺得我可能會對複雜的事情感到厭煩。

+0

「這可能是重複的,如果可以隨時關閉。」這是否意味着在發佈此消息之前,您沒有嘗試查找答案? – dfundako

+0

https://msdn.microsoft.com/en-us/library/ms228388.aspx – BobSki

+1

如果你可以保證'__',爲什麼不只是'str.Split(「__」)[1]' – Jonesopolis

回答

1

使用此:

string sample = "NHRM__Location__c"; 
Console.WriteLine(sample.Split('_')[2]); 
+1

輸入在連續有兩個下劃線,您正在拆分一個下劃線。我認爲當你分裂時,你會發現[2]位置的單詞是單詞「位置」,而不是[1]位置。此外,該方法是'拆分',而不是'拆分' –

+0

謝謝你是這是位置2我覺得真的很愚蠢。我會在會後不久接受答案。敬請關注進修。 –

3

我已經使用這個代碼把這個變成一個.Net Fiddle你:

using System; 

public class Program 
{ 
    public static void Main() 
    { 
     string stringToSplit = "NHRM__Location__c"; // 2 underscores in each location 
     char[] sep = new char[] {'_', '_'}; 
     string newString = stringToSplit.Split(sep)[2]; 

     Console.WriteLine(newString); 
    } 
} 

我知道這是類似於第1的答案,但我只是想證明該[2]確實工作,至少對我來說.net小提琴。

我希望這有助於!

更新

System.String

返回值 - 其元素包含從該實例中由一個或多個字符在分隔符分隔

所以字符串的數組如果我將代碼更改爲[4],那麼它將返回c ..並且[0]將返回NHRM ..數組值不包含分隔符

+0

您的stringToSplit變量與OP的不一樣。 – Bearcat9425

+0

好吧,它的工作原理是因爲你的輸入與OP的不同 – Jonesopolis

+0

原始輸入字符串在一行中有兩個下劃線。你的只有一個。 –