解决方案1:不测试大小写,只需将输入/测试值更改为小写&只需检查小写字母即可:-
try (Stream paths = Files.find(cobDir, 1,
(path, attrs) -> attrs.isRegularFile()
&& path.getFileName().toLowerCase().startsWith(pattern)
&& path.toString().toLowerCase().endsWith(format))) {
matchingFile = paths.findFirst();
} catch (IOException e) {
logger.error("Problem with getting files to process {}", e.getMessage());
}
是否有更好的格式化方法,是的:-
try (Stream paths = getPaths()){
...
}
并将所有丑陋的东西粘贴在一个函数中:
private Stream getPaths(/** cobDir, pattern, format */){
return Files.find(cobDir, 1,
(path, attrs) -> attrs.isRegularFile()
&&
path.getFileName().toString().toLowerCase().startsWith(pattern)
&& path.toString().toLowerCase().endsWith(format))
}