【问题标题】:Need to get file name only from location in java只需要从java中的位置获取文件名
【发布时间】:2026-01-21 15:45:02
【问题描述】:

我需要从此路径 C:\Users\Public\Documents\Intuit\QuickBooks\Company Files\BLU.qbw 获取公司名称“BLU”

我试过这样

String[] temp;
        String delimiter = ".";
        temp = strCompanyFileName.split(delimiter);

         for(int i =0; i < temp.length ; i++){
               System.out.println(temp[i]);
         }



        String[] actualHotelCode;
        delimiter = "\\\\.";

        actualHotelCode = temp[0].split(delimiter);
        int maxlength = actualHotelCode.length -1;

        System.out.println(actualHotelCode[maxlength]);

当我进行拆分时,临时数组变为空,请帮我解决这个问题

【问题讨论】:

  • delimiter 更改为"\\.",因为它是一个正则表达式。
  • str.substring(str.lastIndexOf('\\') + 1,str.lastIndexOf('.'))怎么样

标签: java string split delimiter


【解决方案1】:

如果您绝对确定在路径中使用的是 \ 而不是 /,则可以使用它。

int lastSlashIndex = path.lastIndexOf('\');
int lastComaIndex = path.lastIndexOf('.');
String s = path.substring(lastSlashIndex + 1, lastComaIndex);

【讨论】:

    【解决方案2】:
    import org.apache.commons.io.FilenameUtils;
    
    File file = new File("C:\Users\Public\Documents\Intuit\QuickBooks\Company Files\BLU.qbw");
    String nameWithExtension = file.getName(file);
    
    String nameWithoutExtension= FilenameUtils.getBaseName(nameWithExtension);
    

    【讨论】: