我有一个来自文件夹的文件名读取器。文件名被放入一个字符串数组。执行此代码段时我想要的是我想要不带扩展名的文件名。但是扩展名仍然可以打印出来。
import java.io.File;
public class Main {
public static void main(String[] args) {
File file=new File("D:\\C_App\\PDF");
String[] files = file.list();
for(String string : files) {
string.substring(0, string.length());
System.out.println(string);
}
}
}
有人可以帮我解决这个问题吗? 谢谢。
答案 0 :(得分:1)
从.
的最后一个索引中获取字符串的子字符串
import java.io.File;
public class Main {
public static void main(String[] args) {
File file=new File("D:\\C_App\\PDF");
String[] files = file.list();
for(String string : files) {
if(new File(string).isFile){
if (string.lastIndexOf(".") > 0) {
System.out.println(string.substring(0, a.lastIndexOf('.'));
}
else {
System.out.println(string);
}
}
}
}
}
答案 1 :(得分:0)
通过匹配最后一个点(.
并拆分来使用正则表达式,
正则表达式(\\.)(?!.*\\.)
与最后一个点匹配。
import java.io.File;
public class Main {
public static void main(String[] args) {
File file=new File("D:\\C_App\\PDF");
String[] files = file.list();
for(String string : files) {
if (!string.isEmpty()) {
System.out.println(string.split("(\\.)(?!.*\\.)")[0]);
}
}
}
答案 2 :(得分:0)
这是解决方案:
type
首先要获取不带扩展名的文件名,我们需要查找是否存在任何扩展名,然后仅删除扩展名,并从最后查找id
。
假设文件名中不包含多个public static void main(String[] args) {
File file = new File("D:\\SunilKanjar");
String[] files = file.list();
for (String string : files) {
if (string.lastIndexOf(".") > 0) {
System.out.println(string.substring(0, string.lastIndexOf(".")));
}
}
}
符号是不正确的。