2016-09-07 1 views
-2

У меня есть переменная ввода пользователя, содержащая строку в формате: "domain\alias", и мне нужно разбить ее на две разные строки: домен и псевдоним.Разбиение строки в домене формата alias

Я слышал где-то о преобразовании строк в литералы, но я не понимаю, как это поможет мне здесь.

+0

'doamin' ->' domain' typo? Можете ли вы показать пример? –

+0

Вот пример. и да, это была опечатка. Моя переменная называется xyz. содержащий строку в виде домена \ alias. теперь я хочу разделить xyz в двух разных строках: домен и псевдоним – dotnetman

ответ

1

Написать

var x = @"doamin\alias".Split('\\') 

это даст вам массив Whith содержания

x[0] = "doamin" 
x[1] = "alias" 

, если вы хотите, чтобы получить пользователь, даже если домен не указан:

var user = x.Length == 2 ? x[1] : x[0]; 
var domain = x.Length == 2 ? x[0] : null; 
+0

спасибо. но сказать, что у меня есть строка в переменной xyz, тогда указанный выше метод не работает. Предположим, пожалуйста. – dotnetman

+0

Infact, он также не работает в вышеуказанном случае, если и до тех пор, пока я не префикс строки '@'. – dotnetman

+0

Ну '@" domain \ alias "' точно совпадает с * именем домена \\ alias "'. Если мы помещаем '@' перед строкой, нам не нужно скрывать обратную косую черту. http://stackoverflow.com/questions/556133/whats-the-in-front-of-a-string-in-c – mortb

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

Это будет выдаваться, если вход не содержит обратную косую черту ('\'), потому что тогда 'IndexOf()' будет возвращать -1. – CodeCaster

+1

Да. Но вопрос, заданный @dotnetman, не указывает это исключение. –

+1

Прочитайте о защитном программировании. – CodeCaster