2016-11-29 8 views
-4

У меня есть строка "domain\cdsid", где "\" является разделителем, все, что я хочу, состоит в том, чтобы разделить строку и просто распечатать "cdsid".разделитель токенизатора строки Java

Входная строка: "domain\cdsid"

Выходная строка: "cdsid"

Как мне это сделать?

+0

Вы пробовали? Разделите строку разделителем и получите доступ к результирующему массиву – Li357

ответ

2

Попробуйте это (используя split):

String myText = "domain\\cdsid"; 
System.out.println(myText.split("\\\\")[1]); 

Выход:

cdsid 
+0

Это выглядит отлично, но если вы видите это здесь. "String [] loginname = (node.getAttributes(). GetNamedItem (" LoginName "). GetNodeValue()). Split (" \\ ");" Я извлекаю данные из sharepoint и его «LoginName», у которого этот формат «domain \ cdsid» предопределен. –

+0

У вас не может быть '' '' 'внутри String, поэтому, даже если метод возвращает строку' 'domain \ cdsid'', это фактически' 'domain \\ cdsid'', и, следовательно, соответствующий раскол. – Jarvis

+0

Спасибо, что у вас есть –

-1

Расщепление способ, который я рекомендовал идти, когда вам нужны все элементы, в результате операции. .. это потому, что результат будет генерировать Array of Strings (что пустая трата памяти, генерирующая массив, чтобы получить только один элемент!), не думаете ли вы?)

в вашем случае что-то вроде регулярного выражения или просто подстрок мягко предоставить вам правильный ответ ..

считает:

String txt = "domain\\cdsid"; 
System.out.println(txt.substring(txt.indexOf("\\") + 1)); 

выход:

cdsid

0

В Java String объект «\» используется для определения любого символа escape-последовательности, такого как \ n для новой строки, \ t для вкладки, \\ для наличия обратного слэша в объекте String.

Таким образом, вместо того, чтобы писать объект Строка в

Струнный ул = "домен \ cdsid";

Вы должны написать

Строка Str = "домен \\ cdsid";

Первый вариант даст ошибку времени компиляции. Java ожидает, что после обратного слэш их должен быть некоторый символ escape-последовательности, но это не их первый случай. Это будет ошибка компиляции времени, как

Недопустимая последовательность выхода (действительные те являются \ B \ т \ N \ F \ г \»\» \\)

В приведенных выше ошибках времени компиляции каждому отдельных value - символ escape-последовательности в java.

Так что ваш окончательный код будет

String str = "domain\\cdsid"; 
System.out.println(str.split("\\\\")[1]); 

Надеется, что это помогает.

+0

Вы даже запускали код перед отправкой решения? – Jarvis

+0

Извините, но в какой части есть ошибка? Я уже упоминал, что первый вариант даст ошибку компиляции в объяснении. – SachinSarawgi

+0

«Окончательный» код, который вы опубликовали. – Jarvis

Смежные вопросы