nan*_*r94 1 java string java-8 java-stream
我每分钟在一个线程中验证目录中的许多文件.目前我正在使用下面的功能,工作正常.我的问题是我是否可以重写此方法以更快地运行(java8?),并希望缩短.
public boolean validateFile(String fileName) {
fileName = fileName.substring(0, fileName.lastIndexOf('.'));
String[] values = fileName.split("_");
if (values.length == 4) {
if(!values[1].matches("0*")) {
if(!fileName.contains(" ")) {
if(values[3].equals("PASS") || values[3].equals("FAIL")) {
return true;
}
}
}
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
验证规则:
您可以使用http://ideone.com/dh8j9M上的文件名示例运行和分叉此代码
这样的事情 - 只是将分支转换为java-8的简单转换.可能更具可读性,但速度不快.
return Optional.ofNullable("test") // your fileName
.filter(x -> !x.contains(" "))
.map(x -> x.substring(0, x.lastIndexOf(".")))
.map(x -> x.split("_"))
.filter(arr -> arr.length == 4)
.filter(arr -> !arr[1].matches("0*"))
.filter(arr -> arr[3].equals("PASS") || arr[3].equals("FAIL"))
.isPresent();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
189 次 |
| 最近记录: |