2017-06-29 54 views
-4

我想拆分一個字符串,這是一個文件的名稱(例如:DIS_LU0786738343_20170608.pdf,KID_AMEV_20170608.pdf,Evolution-DIS_20170512.csv,Offres-invest_20170608.csv,OST_20170608。 csv)來獲得最後一部分。正則表達式分裂一個字符串,並得到最後一部分

例如,對於字符串DIS_LU0786738343_20170608.pdf我只想獲得20170608,它將在Date對象上進行轉換。

我一直在谷歌上搜索這個,我發現使用Regular Expressions一個解決方案:

String regex = "some regex expression"; 
String fileName = "DIS_LU0786738343_20170608.pdf"; 
System.out.println(Arrays.toString(fileName.split(regex))); 

這將返回一個數組是這樣的:[DIS_LU0786738343_, 20170608]

所以任何人都可以幫我做的正則表達式這樣做?

+0

SO不是一個免費的編碼服務 – Fallenhero

+0

@Fallenhero你的評論是沒有用的:) –

+0

下次再關注https://stackoverflow.com/help/how-to-ask – Fallenhero

回答

0

我掉了下來,正則表達式的東西,發現我想和任何人誰需要它在未來分享另一種解決方案:

private LocalDate getDateFromPriipsDoc(File file) { 
    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd"); 
    String fileName = FilenameUtils.getBaseName(file.toString()); 
    String dateInString = fileName.substring(fileName.lastIndexOf("_") + 1); 
    return LocalDate.parse(dateInString, formatter); 
} 

不要猶豫,分享正則表達式另一種解決方案;)

1
String fileName = "DIS_LU0786738343_20170608.pdf"; 
    int startIdx = fileName.lastIndexOf("_"); 
    int endIdx = fileName.lastIndexOf("."); 
    String finalStr=fileName; 
    if (startIdx > 0 && endIdx > 0) 
      finalStr = fileName.substring(startIdx + 1, endIdx); 
    System.out.println(finalStr); 

我認爲這應該適合你。

相關問題