使用 java 8 在文件名和扩展名之间添加中缀

Sti*_*uck 4 java path java-8

在我的代码中,我想转换表单的路径

/a/path/to/a/file/image.jpg
Run Code Online (Sandbox Code Playgroud)

/a/path/to/a/file/image_resized.jpg
Run Code Online (Sandbox Code Playgroud)

目前,我正在使用以下FilenameUtils来自 apache commons IO 的代码。

public Path resize(Path original) {
    String baseName = FilenameUtils.getBaseName(original.toString());
    String extension = FilenameUtils.getExtension(original.toString());
    return Paths.get(original.getParent().toString(), baseName + "_resized." + extension);
}
Run Code Online (Sandbox Code Playgroud)

我想知道是否可以使用 java 8 功能增强其中的某些代码,特别是:

  • 是否有一种 java-8 方法来提取扩展名和基本名称,而不使用对 Apache Commons IO (FilenameUtils) 的依赖,并且没有正则表达式(我更喜欢依赖 apache commons IO 而不是在这里使用正则表达式)
  • 在没有toString()in 的情况下加入 PathsPaths.get(existingPath.toString(), "path/to/append");

问题的第二部分在 Java中的组合路径中回答

Eug*_*ene 5

对于如此小而简单的IMO任务,您不需要库(并且没有 java-8 不添加对此的支持);我也不知道为什么正则表达式是不可能的

    int where = input.lastIndexOf(".");

    String result = input.substring(0, where) + "_resized" + input.substring(where);
    System.out.println(result);
Run Code Online (Sandbox Code Playgroud)