2016-09-07 1 views
0

"domain \ alias"という形式で格納された文字列を持つ変数があり、これを2つの異なる文字列のドメインとエイリアスに分割します。 私は上記の2つのソリューションを持っていますが、私の場合はどちらも機能していません。 解決策1:文字列からエイリアスを分離する。このため 私は以下のコードを使用しています:ドメインエイリアスの形式で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で始まる文字列を必要とし、私は、このソリューションが動作しないため、変数名に保存されている私の文字列を持っています。 誰かが私の変数名から2つの部分文字列を抽出するのを助けてください。

編集1:ありがとうございました!私は問題を理解しました...私は明示的に文字列を宣言するとき:var x = "domian \ alias"という名前で作成して\としてエスケープ文字として扱いますので、先頭に@を付ける必要がありました。しかし、私は文字列がユーザーから読み込まれるとき、解決策が動作することを知っておく必要があります!

+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); 

それは本家より良い遅く、決して:)

関連する問題