繁体   English   中英

如何拆分 java 中的字符串

[英]how to split the string in java

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

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

我想知道如何将字符串拆分为例如。 在 java 中,如果我使用"split("\")" ,则会出现语法错误。

谢谢

split() Java 中的 function 接受正则表达式。 因此,您真正需要做的是两次转义反斜杠字符:

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

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

语法错误是因为在 Java 中使用 sing 反斜杠作为转义字符

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

因为最终结果应该是这样的"\\\\"

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

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

谢谢约翰

您需要转义反斜杠:

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

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

你需要逃避它。

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

编辑:或使用Pattern.quote方法。

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

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

强烈建议您获取文件目录并遍历父目录以获取路径。 无论您使用的是什么操作系统,它都可以随时工作。

尝试这个:

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());
}
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);

我想你可以使用 StringTokenizer 库

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

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

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

这将给出结果为abc

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

split("\\")

用反斜杠分割。

split("\\")反冲用于转义。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM