2017-06-29 8 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の場合、Dateオブジェクトで変換されるのは20170608のみです。

私はこれをグーグルでてきたと私は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); 

私はこれはあなたのために働くべきだと思います。

関連する問題