第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

借助流從文件名中刪除擴展名

借助流從文件名中刪除擴展名

慕桂英3389331 2022-05-25 17:28:16
目前我有一些代碼返回我的文件名和擴展名,為此我正在使用 java 8 流 api。但我也想在同一個流中修剪字符串。return Files.walk(Paths.get(qPath))                       .filter(extension -> extension.toString().endsWith(".txt"))                       .map(Path::getFileName)                       .findFirst()                       .map(Path::toString)                       .get();知道如何從流中的字符串中刪除 .txt 嗎?
查看完整描述

3 回答

?
元芳怎么了

TA貢獻(xiàn)1798條經(jīng)驗 獲得超7個贊

您通過多次將路徑轉(zhuǎn)換為字符串來浪費資源。當(dāng)預(yù)期的最終結(jié)果無論如何都是一個字符串時,您可以作為第一步映射到一個字符串,因此您不需要重復(fù)它。

return Files.walk(Paths.get(qPath))
    .map(p -> p.getFileName().toString())
    .filter(name -> name.endsWith(".txt"))
    .map(name -> name.substring(0, name.length()-".txt".length()))
    .findFirst()
    .get();

請注意,無論您是將最后.map(…)一步findFirst()放在Optional. 由于 Stream 的惰性,它仍然只會應(yīng)用于這里的第一個匹配元素。但我更喜歡將.endsWith(".txt")測試和后續(xù)測試.substring(0, name.length()-".txt".length())盡可能地放在一起,以使這兩個步驟之間的關(guān)系更加明顯。


查看完整回答
反對 回復(fù) 2022-05-25
?
米琪卡哇伊

TA貢獻(xiàn)1998條經(jīng)驗 獲得超6個贊

您可以添加其他地圖以刪除文件擴展名 -

Files.walk(Paths.get(""))
        .filter(extension -> extension.toString().endsWith(".txt"))
        .map(Path::getFileName)
        .findFirst()
        .map(Path::toString)
        .map(fileNameStr -> fileNameStr.substring(0, fileNameStr.lastIndexOf('.'))
        .get();

或者修改當(dāng)前地圖這樣做 -

Files.walk(Paths.get(""))
        .filter(extension -> extension.toString().endsWith(".txt"))
        .map(Path::getFileName)
        .findFirst()
        .map(path -> path.getFileName().toString().substring(0, path.getFileName().toString().lastIndexOf('.')))
        .get();


查看完整回答
反對 回復(fù) 2022-05-25
?
守著星空守著你

TA貢獻(xiàn)1799條經(jīng)驗 獲得超8個贊

如果要使用流,則僅刪除擴展名是不值得的。使用類似下面的東西,但它也有一些缺點,比如dd.txt.txtwill fetch dd.txt。

String trimmedString = str.substring(0, str.lastIndexOf('.'));


查看完整回答
反對 回復(fù) 2022-05-25
  • 3 回答
  • 0 關(guān)注
  • 145 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號