2016-09-07 79 views
0

我有一個變量,它以字符串格式「domain \ alias」存儲,我想把它分成兩個不同的字符串域和別名。 我對上述案例有兩種解決方案,但他們都沒有在我的案件中工作。 解決方案1:從字符串中分離別名。 這個我使用下面的代碼:以格式Domain Alias從c#中的字符串獲取子字符串

int index = name.IndexOf("\") + 1; 

string piece = name.Substring(index); 

其中名稱是存儲格式爲「域\別名」 字符串此解決方案不適用於工作變量「\」但是它的工作原理的情況下,的'。' 解決方案2: 將域從字符串中分離出來。 在這裏我得到了如下的解決方案:

var domainFormattedString = @"fareast\v-sidmis"; 
var parts = domainFormattedString.Split('\\'); 
var domainString = parts[0]; 
return domainString; 

這個工作,但它需要與@symbol前綴字符串和我有存儲在此解決方案不起作用變量名我的字符串。 有人請幫我從我的變量名中提取兩個子字符串。

編輯1:謝謝大家的幫助!我想出了這個問題......當我明確地聲明一個字符串爲:var x =「domian \ alias」它創建和發佈爲\被c處理爲轉義字符,所以我必須在開頭追加@。但是我知道,當從用戶讀取字符串時,解決方案可行!

+0

有人可以回答我的問題? – dotnetman

+0

你試過int index = name.IndexOf(「\\」)+ 1; ? –

+0

是的,我沒有...它沒有幫助 – dotnetman

回答

1

\具有特殊含義,因此您需要覆蓋轉義序列以作爲另一個轉義字符處理爲普通字符。

string input = @"domain\alias"; 
int inputindex= input.IndexOf("\\");   
string domain = input.Substring(0, inputindex); 
string alias = input.Substring(inputindex+1); 

希望它有助於eventhough好過從未:)