如何在Java

时间:2018-08-22 04:44:16

标签: java arrays 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) {
            string.substring(0, string.length());
            System.out.println(string);
        }
    }
}

有人可以帮我解决这个问题吗? 谢谢。

3 个答案:

答案 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("."))); } } } 符号是不正确的。