2016-11-29 162 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