如何从文件名中提取数字后缀

时间:2019-05-29 12:19:32

标签: java

在Java中,我有一个文件名示例ABC.12.txt.gz,我想从文件名中提取数字12。目前,我正在使用最后一个索引方法并多次提取子字符串。

3 个答案:

答案 0 :(得分:0)

您可以尝试使用模式匹配

import java.util.regex.Pattern;
import java.util.regex.Matcher;

// ... Other features

String fileName = "..."; // Filename with number extension
Pattern pattern = Pattern.compile("^.*(\\d+).*$"); // Pattern to extract number

// Then try matching
Matcher matcher = pattern.matcher(fileName);
String numberExt = "";
if(matcher.matches()) {
    numberExt = matcher.group(1);
} else {
    // The filename has no numeric value in it.
}

// Use your numberExt here.

答案 1 :(得分:0)

您可以使用正则表达式将每个数字部分与字母数字部分分开:

public static void main(String args[]) {
    String str = "ABC.12.txt.gz";
    String[] parts = str.split("(?<=\\D)(?=\\d)|(?<=\\d)(?=\\D)");

    // view the resulting parts
    for (String s : parts) {
        System.out.println(s);
    }

    // do what you want with those values...
}

这将输出

ABC.
12
.txt.gz

然后拿走您需要的零件,并使用它们进行处理。

答案 2 :(得分:0)

我们可以使用类似的方法从字符串中提取数字

 String fileName="ABC.12.txt.gz";
 String numberOnly= fileName.replaceAll("[^0-9]", "");