所以我試圖將文件名拆分爲基礎和擴展。我發現this回答這個問題,但我有另一個條件,這個答案不回答。我有兩個條件需要添加:如何將文件名拆分爲基礎和擴展
1.如果文件以「。」開頭,並沒有任何其他時期,那麼它就像第一個時期計數是文件名稱的一部分,並且沒有擴展名(擴展名是「」)。 鏈接中的答案上述
fileName.split("\\.(?=[^\\.]+$)")
將返回給定的文件名 「.Myfile」
["",MyFile"]
但我想這回是
[.MyFile,""]
是有沒有辦法使用正則表達式(改變條件)?
2.我需要2個單元格,不管文件名是什麼。如果文件名是「README」,那麼我仍然需要創建兩個單元格,第二個單元格應該包含一個空字符。
我想:
[README,""]
歸還。
這可能嗎?
編輯:解決! 感謝的幫助WiktorStribiżew我解決了它。我把它改成
String fileName;
String[] splitedName
String pat = "((?!^)\\.(?=[^.]*$|(?<=^\\.[^.]{0,1000})$))|$";
fileName = "README.txt"
System.out.println(Arrays.toString(fileName .split(pat,2)));
fileName = ".README"
System.out.println(Arrays.toString(fileName .split(pat,2)));
fileName = "README"
結果
"README.txt" => [REAADME,txt]
".README" => [REAADME, ]
"README" => [REAADME, ]
因爲我想。
在這一點上,它感覺像一個簡短的方法來解析文件名是更好的選擇。 – markspace
上述問題中所述的要求與重複問題不完全匹配 – Sanjeev
這絕對不是重複問題。我甚至補充了原始問題,並指出了爲了獲得正確的表格而需要做出的兩個重大差異。 –