我有一個字符串"domain\cdsid"
,其中"\"
是分隔符,我只想分割字符串,然後打印"cdsid"
。Java字符串標記器分隔符
輸入字符串:"domain\cdsid"
輸出字符串:"cdsid"
我該怎麼辦呢?
我有一個字符串"domain\cdsid"
,其中"\"
是分隔符,我只想分割字符串,然後打印"cdsid"
。Java字符串標記器分隔符
輸入字符串:"domain\cdsid"
輸出字符串:"cdsid"
我該怎麼辦呢?
試試這個(使用split
):
String myText = "domain\\cdsid";
System.out.println(myText.split("\\\\")[1]);
輸出:
cdsid
看起來很好,但如果你在這裏看到這個。 「String [] loginname = (node.getAttributes()。getNamedItem(」LoginName「)。getNodeValue())。split(」\\「);」 Iam從sharepoint及其「LoginName」中提取數據,其格式爲「domain \ cdsid」其預定義。 –
你不能在一個String內部有一個'''',因此,即使該方法返回字符串'「domain \ cdsid」',它實際上就是''domain \\ cdsid「',因此,相應的分割。 – Jarvis
謝謝你明白了 –
拆分的是,我會建議,當你需要產生的操作的所有元素去的方式。 ..這是因爲結果會產生一個字符串數組(浪費內存產生一個數組只能得到一個元素!:)你不覺得??)
你的情況類似正則表達式或只是子會輕輕地爲你提供了正確的答案..
考慮:
String txt = "domain\\cdsid";
System.out.println(txt.substring(txt.indexOf("\\") + 1));
輸出:
cdsid
在Java中,字符串對象「\」用於定義任何轉義序列字符,如新行的\ n,製表符的\ t,以及在String對象中具有反斜槓的轉義序列字符。
因此,而不是寫入字符串對象作爲
字符串str = 「域\ cdsid」;
你必須寫
字符串str = 「域\\ cdsid」;
第一個選項會導致編譯時錯誤。 Java會希望在反斜槓後它們必須是一些轉義序列字符,但它不是第一種情況。它將編譯時間誤差作爲
無效的轉義序列(有效的有\ B \噸\ n \˚F\ r \」 \」 \\)
在上述編譯時間錯誤每個單獨值是java中的轉義序列字符。
所以你的最終代碼會
String str = "domain\\cdsid";
System.out.println(str.split("\\\\")[1]);
希望這有助於。
你甚至在發佈解決方案之前運行代碼? – Jarvis
對不起,哪部分給出了錯誤?我已經提到,第一個選項會給解釋中的編譯時錯誤。 – SachinSarawgi
您發佈的''final''代碼。 – Jarvis
你試過了嗎?按分隔符分割字符串並訪問得到的數組 – Li357