【问题标题】:Detecting files with sequential number in the file name检测文件名中带有序号的文件
【发布时间】:2018-08-15 07:21:55
【问题描述】:

我想实现一个导入多个带序号的文件的函数。
如果文件名类似于aaa_000aaa_001,我可以用下划线分割它们并取数字。但是当文件名不是这种模式时,我不知道这样做的好方法是什么。
文件名可以是a_aa_000a00a_000a_0_000aaa000a_aa000,并以数字结尾。


更新:
我找到了一种方法来实现它,方法是找到最后一个非数字字符,它之前的字符将是共同名称。

【问题讨论】:

  • 只在最后一个下划线分开?
  • 如果您只想要最后一个数字部分,您可以将 substring 与 lastIndexOf 结合使用:filename.substring(filename.lastIndexOf("_")+1);
  • @RobAu 抱歉,我没有说清楚,名称不需要下划线。
  • 所以名字可以是任何东西?还是会以数字结尾?或者包含一个数字?见这里:stackoverflow.com/questions/372148/…

标签: java filenames sequential


【解决方案1】:

除了@Robabu 提到的内容,请更改您的模式以包含“$”,以便它仅匹配以字符串结尾的模式。下面的代码适用于您上面提到的所有测试输入。

Pattern intsOnly = Pattern.compile("\\d+$");
Matcher makeMatch = intsOnly.matcher("a_aa000");
makeMatch.find();
String inputInt = makeMatch.group();
System.out.println(inputInt);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-21
    • 2013-11-08
    • 2011-08-24
    • 2023-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-29
    相关资源
    最近更新 更多