2016-09-07 80 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好过从未:)