我有一個字符串 例如。如何獲得字符串的一部分
string a = "OU=QALevel1,DC=CopTest,DC=copiun2,DC=com";
了,我想我的臨時串具有值
tempString = "DC=CopTest,DC=copiun2,DC=com"
我需要從字符串中刪除OU
值對所有出現。這些總是首先出現在字符串中。
我有一個字符串 例如。如何獲得字符串的一部分
string a = "OU=QALevel1,DC=CopTest,DC=copiun2,DC=com";
了,我想我的臨時串具有值
tempString = "DC=CopTest,DC=copiun2,DC=com"
我需要從字符串中刪除OU
值對所有出現。這些總是首先出現在字符串中。
那麼,這取決於你想要它的理由。如果你想第一個逗號後的一切,你可以使用:
int comma = a.IndexOf(',');
if (comma != -1)
{
string tempString = a.Substring(comma + 1);
// Use tempString
}
else
{
// Deal with there not being any commas
}
如果這不是你想怎麼分割字符串,請給你需要做的更多的信息。
編輯:如果您需要「的第一個逗號後面DC =」你可以在第一行更改爲:
int comma = a.IndexOf(",DC=");
同樣,如果你需要別的東西,請多更具體的瞭解什麼你正在努力。
也可以有其他OU ..這只是一個例子,它可以是OU = SupportSubLevel3,OU = SupportLevel1,DC = CopTest,DC = copiun2,DC = com – user175084 2011-04-30 19:22:31
@ user175084:那麼,什麼決定了你想要開始的地方拿字符串? – 2011-04-30 19:27:30
您需要爲此使用Substring函數,但是如何使用它取決於您的標準。例如,你可能只是這樣做:
tempString = a.Substring(12);
如果你可以讓我們知道你是標準的會非常有用
或者@Jon Skeet在第一個逗號的索引處完成了你的子字符串:) – 2011-04-30 19:22:06
假設OU
總是值對的其餘部分之前,這將讓你所有的字符串繼上次OU
值:
string a = "OU=QALevel1,DC=CopTest,DC=copiun2,DC=com";
string res = a.Substring(a.IndexOf(',', a.LastIndexOf("OU=")) + 1);
// res = "DC=CopTest,DC=copiun2,DC=com"
你可以使用LINQ的幫助:
string foo = "OU=SupportSubLevel3,OU=SupportLevel1,DC=CopTest,DC=copiun2,DC=com";
string sub = string.Join(",",
foo.Split(',')
.Where(x => x.StartsWith("DC")));
Console.WriteLine(sub);
+1順便說一句'Split(',')'就足夠了。 – 2011-04-30 19:29:54
'string.Split()'至少工作[自.NET 1.1](http://msdn.microsoft.com/en-us/library/aa904305%28v=VS.71%29.aspx)。 – svick 2011-05-01 00:54:24
我懷疑你真正需要的這裏是所有的域組件。你甚至可能想分割它們。這個例子將支持任何DN語法,並從中提取了DC的:
string a = "OU=QALevel1,DC=CopTest,DC=copiun2,DC=com";
// Separate to parts
string[] parts = a.Split(',');
// Select the relevant parts
IEnumerable<string> dcs = parts.Where(part => part.StartsWith("DC="));
// Join them again
string result = string.Join(",", dcs);
注意,你同時獲得dcs
- 所有的DC部分的枚舉,並result
- 您所要求的字符串。但最重要的是,這個代碼有意義 - 當你看到它時,你確切知道它會做什麼 - 返回一個字符串,其中包含原始字符串的所有DC=*
部分的列表,刪除所有非DC部分。
你用什麼規則來確定你想要的字符串的哪一部分? – Oded 2011-04-30 19:18:41
你只是想要所有以'DC'開頭的值?你確定你想要輸出爲字符串嗎?如果你想進一步解析它,這對於這個任務是有意義的,並且一步完成進一步的解析。 – svick 2011-04-30 19:21:01
也可以有其他的OU ..這只是一個例子,它可以是OU = SupportSubLevel3,OU = SupportLevel1,DC = CopTest,DC = copiun2,DC = com – user175084 2011-04-30 19:22:53