2016-05-16 105 views
3

我想分割特殊字符“\”。 然而,它似乎并没有制定出使用如何在 java中拆分字符串?

a.split("\"); 

a.split("\\"); 
+1

它应该工作:'的String [] =分裂a.split( “\\”);' – theTechnoKid

+0

为什么你认为第二个选项不起作用?你能分享一个示例输入并解释结果与你所期望的不同吗? – Mureinik

+0

线程“main”中的异常java.util.regex.PatternSyntaxException:索引1附近的意外内部错误 \ –

回答

2

解决虽然你可以逃脱正则表达式到有点令人惊讶的String.split

String str = "a\\b\\c"; 
str.split("\\\\"); 

它也可以编译Pattern.LITERAL一个Pattern然后用Pattern.split(CharSequence)

String str = "a\\b\\c"; 
Pattern p = Pattern.compile("\\", Pattern.LITERAL); 
String[] arr = p.split(str); 
System.out.println(Arrays.toString(arr)); 

,输出

[a, b, c] 
+0

这也是一个不错的方法。感谢您的回答 –

+0

感谢@ChitKhine的编辑 - 我进一步将反引号改为双引号。 –

2

这个问题可以通过使用

a.split("\\\\"); 
+0

干得好......准确回答。 – 2016-05-18 16:44:09

0

只需使用\ n中的字符串内如果需求。没有方法需要拆分。

  1. “\”java中的特殊字符。这是用来跳过一个字符。比如String s =“我是一个大学的”学生“!”; 听到没有使用“\”,不允许使用双c。
  2. 我们不能在字符串中使用“\”单个。 String s =“我是一名大学生!”; 听到“\”会使Err。
  3. 无需使用“\”拆分方法只需在需要的地方使用“\ n”即可。

    或使用其它字符与它这样

    String s = "Thir is a Tiger.\'I like it very nuch!\'I it a pet!"; 
    String s2[] = s.split("\'"); 
    for (int i = 0; i < s2.length; i++) { 
        System.out.println(i+" value "+s2[i]); 
    } 
    
+0

我这里的目的是用于我的文件目录。当我检索文件目录时,我得到了字符串light \ hello \ text.txt。在这种情况下,我们将在字符串中出现\。 –

+0

然后使用它。=> String s =“light \\ hello \\ text.txt”; String s2 [] = s.split(“\\\\”); (int i = 0; i 2016-05-16 04:36:07

0
String s = "light\\hello\\text.txt"; 
    String s3[] = s.split(Pattern.quote("\\")); 
    for (int i = 0; i < s3.length; i++) { 
     System.out.println(i+" value "+s3[i]); 
}