Java-如何从绝对路径获取文件名并删除其文件扩展名?
这里有一个问题,我有一个字符串,其中包含一个值C:\Users\Ewen\AppData\Roaming\MyProgram\Test.txt,我想删除C:\Users\Ewen\AppData\Roaming\MyProgram\以便只剩下测试。所以问题是,我如何移除字符串的任何部分Java-如何从绝对路径获取文件名并删除其文件扩展名?,java,string,file,Java,String,File,这里有一个问题,我有一个字符串,其中包含一个值C:\Users\Ewen\AppData\Roaming\MyProgram\Test.txt,我想删除C:\Users\Ewen\AppData\Roaming\MyProgram\以便只剩下测试。所以问题是,我如何移除字符串的任何部分 谢谢你抽出时间!:) 如果您严格使用文件路径,请尝试以下操作 String path = "C:\\Users\\Ewen\\AppData\\Roaming\\MyProgram\\Test.txt"; Fil
谢谢你抽出时间!:) 如果您严格使用文件路径,请尝试以下操作
String path = "C:\\Users\\Ewen\\AppData\\Roaming\\MyProgram\\Test.txt";
File f = new File(path);
System.out.println(f.getName()); // Prints "Test.txt"
String fName = f.getName();
System.out.println(fName.substring(0, fName.lastIndexOf('.')));
谢谢,但我也想删除.txt 好吧,试试这个
String path = "C:\\Users\\Ewen\\AppData\\Roaming\\MyProgram\\Test.txt";
File f = new File(path);
System.out.println(f.getName()); // Prints "Test.txt"
String fName = f.getName();
System.out.println(fName.substring(0, fName.lastIndexOf('.')));
有关更多信息,请参阅。字符串
类具有处理此问题的所有必要功能。您可能感兴趣的方法:
String.split()
,String.substring()
,String.lastIndexOf()
下面介绍了这3项及更多内容:
想一想,你很快就能让它工作:)。我建议使用。FilenameUtils
类是的一部分
根据文档,该方法“将处理Unix或Windows格式的文件”。“最后一个正斜杠或反斜杠之后,返回最后一个点之前的文本”作为字符串对象
String filename = "C:\\Users\\Ewen\\AppData\\Roaming\\MyProgram\\Test.txt";
String baseName = FilenameUtils.getBaseName(filename);
System.out.println(baseName);
上述代码打印测试
您是在问如何删除字符串的某些部分,还是专门针对包含文件路径的字符串?谢谢,但我也想删除。txt@mre哈哈,这正是我在回答D时试图避免的:@mre,fName.substring(fName.lastIndexOf('.'))
就足够了。要避免使用File(),使用:path.substring(path.lastIndexOf('\\'))+1,path.lastIndexOf('.'))如果您严格使用文件路径,我认为只使用file
类而不是String.split
来解析文件名更容易,但我认为我们不应该给出这样的快捷方式(这涉及到额外的对象,并且在语义上处理问题的直接领域之外的类型,即字符串)给一个首先会问这个问题的人:)当:
而不是/
划定他的路径时,他会怎么做?你是对的,我的解决方案既不灵活,也不优雅,但它很简洁!:不,我认为你的方法比我的要优雅得多(大多数时候简洁=优雅!)。事实上,我自己也会按照你的方式做,只是没有太多的教育意义:(你能再解释一下吗?@Dietermemken:我在回答中加了一个例子。