如何在java中拆分字符串

时间:2011-05-30 08:56:16

标签: java string split

如何在Windows中拆分java中的字符串?  我用了      例如。

String directory="C:\home\public\folder";
String [] dir=direct.split("\");

我想知道如何分割字符串,例如。 在java中,如果我使用"split("\")",则存在语法错误。

感谢

10 个答案:

答案 0 :(得分:12)

Java中的

split()函数接受正则表达式。所以,你真正需要做的是两次逃避反斜杠字符:

String[] dir=direct.split("\\\\");

一个用于Java,一个用于正则表达式。

答案 1 :(得分:7)

导致语法错误,因为Sing反斜杠在Java中用作escape character

在正则表达式'\'中也是一个转义字符,为什么你需要逃避它。

最终结果应如下"\\\\"

但是您应该使用java.io.File.separator作为路径中的拆分字符。

String[] dirs = dircect.split(Pattern.quote(File.separator));

thx to John

答案 2 :(得分:5)

你需要逃避反斜杠:

direct.split("\\\\");

一次是java字符串,一次是正则表达式。

答案 3 :(得分:3)

你需要逃脱它。

String [] dir=direct.split("\\\\");

修改:或使用Pattern.quote方法。

 String [] dir=direct.split(Pattern.quote("\\"))

答案 4 :(得分:2)

请不要使用文件分隔符进行拆分。

强烈建议您获取文件目录并遍历父项以获取路径。无论您使用何种操作系统,它都会每次都有效。

试试这个:

String yourDir = "C:\\home\\public\\folder";
File f = new File(yourDir); 
System.out.println(f.getAbsolutePath());
while ((f = f.getParentFile()) != null) {
    System.out.println(f.getAbsolutePath());
}

答案 5 :(得分:0)

我猜你可以使用StringTokenizer库

String directory="C:\home\public\folder"; 
String [] dir=direct.split("\");
StringTokenizer token = new StringTokenizer(directory, '\');
while(token.hasTokens()
{
    String s = token.next();
}

这在句法上可能不完全正确,但希望这会有所帮助。

答案 6 :(得分:0)

final String dir = System.getProperty("user.dir");
String[] array = dir.split("[\\\\/]",-1) ;
 String arrval="";

   for (int i=0 ;i<array.length;i++)
      {
        arrval=arrval+array[i];

      }
   System.out.println(arrval);

答案 7 :(得分:-1)

这是因为反斜杠。反斜杠用于转义字符。使用

split("\\")

用反斜杠分割。

答案 8 :(得分:-1)

String[] a1 = "abc bcd"
String[] seperate = a1.split(" ");
String finalValue = seperate[0];
System.out.pritln("Final string is :" + finalValue);

这将给出结果为 abc

答案 9 :(得分:-2)

split("\\")反弹用于逃避。