Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java-如何从绝对路径获取文件名并删除其文件扩展名?_Java_String_File - Fatal编程技术网

Java-如何从绝对路径获取文件名并删除其文件扩展名?

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

这里有一个问题,我有一个字符串,其中包含一个值C:\Users\Ewen\AppData\Roaming\MyProgram\Test.txt,我想删除C:\Users\Ewen\AppData\Roaming\MyProgram\以便只剩下测试。所以问题是,我如何移除字符串的任何部分


谢谢你抽出时间!:)

如果您严格使用文件路径,请尝试以下操作

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:我在回答中加了一个例子。