2016-11-09 111 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

原始输入字符串在一行中有两个下划线。你的只有一个。 –