2017-06-29 53 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); 

我认为这应该适合你。

相关问题