如何在 Java 中的数组类型 String[] 上调用子字符串(int, int)



我有一个来自文件夹的文件名读取器。文件名被带到一个字符串数组中。我想要的是当我执行此代码段时,我想要的文件名没有其扩展名。但仍然会打印出扩展名。

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

谁能帮我解决这个问题? 谢谢。

.的最后一个索引中获取字符串的子字符串

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

这是解决方案:

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

要获取不带扩展名的文件名,首先我们需要找到是否有任何扩展名,然后只需要删除扩展名,并且从最后一个开始查找.

假设文件名不包含一个以上的.符号是不准确的。

通过匹配最后一个点 (.( 和拆分来使用正则表达式,

正则表达式(\.)(?!.*\.)与最后一个点匹配。

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

相关内容

  • 没有找到相关文章

最新更新