天天看點

java 檔案去除擴充名_在Java中删除檔案擴充名

為了删除一些特殊情況的檢查代碼,我将要使用一個stab來使用這兩個版本的lastIndexOf,并希望使這個意圖更易讀。信用額度為

Justin ‘jinguy’ Nelson提供了這種方法的基礎:

public static String removeExtention(String filePath) {

// These first few lines the same as Justin's

File f = new File(filePath);

// if it's a directory, don't remove the extention

if (f.isDirectory()) return filePath;

String name = f.getName();

// Now we know it's a file - don't need to do any special hidden

// checking or contains() checking because of:

final int lastPeriodPos = name.lastIndexOf('.');

if (lastPeriodPos <= 0)

{

// No period after first character - return name as it was passed in

return filePath;

}

else

{

// Remove the last period and everything after it

File renamed = new File(f.getParent(), name.substring(0, lastPeriodPos));

return renamed.getPath();

}

}

對我來說,這比特殊套管隐藏的檔案和不包含點的檔案更清晰。它也更清楚地看到我了解你的規範是什麼;像“删除最後一個點和其後的所有内容,假定它存在,而不是檔案名的第一個字元”。

請注意,此示例也意味着Strings作為輸入和輸出。由于大部分抽象需要File對象,是以如果輸入和輸出也是這樣,那麼它将會更加清晰。