2016-11-29 167 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(」\\「);」 Iam從sharepoint及其「LoginName」中提取數據,其格式爲「domain \ cdsid」其預定義。 –

+0

你不能在一個String內部有一個'''',因此,即使該方法返回字符串'「domain \ cdsid」',它實際上就是''domain \\ cdsid「',因此,相應的分割。 – Jarvis

+0

謝謝你明白了 –

-1

拆分的是,我會建議,當你需要產生的操作的所有元素去的方式。 ..這是因爲結果會產生一個字符串數組(浪費內存產生一個數組只能得到一個元素!:)你不覺得??)

你的情況類似正則表達式或只是會輕輕地爲你提供了正確的答案..

考慮:

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

輸出:

cdsid

0

在Java中,字符串對象「\」用於定義任何轉義序列字符,如新行的\ n,製表符的\ t,以及在String對象中具有反斜槓的轉義序列字符。

因此,而不是寫入字符串對象作爲

字符串str = 「域\ cdsid」;

你必須寫

字符串str = 「域\\ cdsid」;

第一個選項會導致編譯時錯誤。 Java會希望在反斜槓後它們必須是一些轉義序列字符,但它不是第一種情況。它將編譯時間誤差作爲

無效的轉義序列(有效的有\ B \噸\ n \˚F\ r \」 \」 \\)

在上述編譯時間錯誤每個單獨值是java中的轉義序列字符。

所以你的最終代碼會

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

希望這有助於。

+0

你甚至在發佈解決方案之前運行代碼? – Jarvis

+0

對不起,哪部分給出了錯誤?我已經提到,第一個選項會給解釋中的編譯時錯誤。 – SachinSarawgi

+0

您發佈的''final''代碼。 – Jarvis