Java拆分路径..?

yuv*_*raj 12 java string split path

这是作为字符串的输入:

"C:\jdk1.6.0\bin\program1.java"
Run Code Online (Sandbox Code Playgroud)

我需要输出为:

Path-->C:\jdk1.6.0\bin\
file--->program1.java
extension--->.java
Run Code Online (Sandbox Code Playgroud)

注意"\"字符.我很容易得到"/"的输出.

Kur*_*lor 21

文件类为您提供您所需要的一切:

    File f = new File("C:\\jdk1.6.0\\bin\\program1.java");
    System.out.println("Path-->" + f.getParent());
    System.out.println("file--->" + f.getName());       
    int idx = f.getName().lastIndexOf('.');
    System.out.println("extension--->" + ((idx > 0) ? f.getName().substring(idx) : "") );
Run Code Online (Sandbox Code Playgroud)

编辑:感谢Dave注意到如果File.getName不包含'.',String.lastIndexOf将返回-1.

  • 如果你试图将自己限制为String.split,那么请注意Kurt如何使用`lastIndexOf()` (3认同)

小智 9

考虑使用现有的解决方案而不是自己滚动并引入更多需要测试的代码.Apache Commons IO的FilenameUtils就是一个例子:

http://commons.apache.org/proper/commons-io/javadocs/api-2.4/org/apache/commons/io/FilenameUtils.html