[英]JAVA - Most efficient way to remove file extension
我要刪除文件擴展名。 例如:
ActualFile = image.png
ExpectedFile = image
哪種方法最有效?
removeExtension()
方法 fileName.substring(0, fileName.lastIndexOf('.'))
沒有區別,只有一個。 您是否真的要添加整個Apache庫以僅使用一種方法? 如果您在應用程序中使用Apache-那么也要使用它。 如果不是,請創建您的自定義實現,這不是火箭科學。
從commons-io
中查看removeExtension
,您可以看到substring
也以與您描述的相似方式在水下用於該方法:
public static String removeExtension(final String fileName) {
if (fileName == null) {
return null;
}
failIfNullBytePresent(fileName);
final int index = indexOfExtension(fileName);
if (index == NOT_FOUND) {
return fileName;
}
return fileName.substring(0, index);
}
因為執行的操作較少,所以您的方法更快,但是removeExtension
方法具有failIfNullBytePresent
,它指出:
檢查輸入是否為空字節,這是未經過處理的數據的標志,將傳遞給文件級功能。
這可用於毒害字節攻擊。
和indexOfExtension
來獲取具有更多檢查的擴展的索引(如您在此處的該方法的javadoc中所看到的 )。
您的方法更快,但是我想說在各種情況下使用commons-io
更為安全/一致,但是使用哪種方法取決於您的情況是否復雜,這是應用程序的關鍵功能還是自己的自制項目。 removeExtension
不是復雜或緩慢的,你不應該深灰色使用它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.