目前我正在使用这样的代码
while (fileName.endsWith(".csv")) {
fileName = fileName.substring(0, fileName.lastIndexOf(FILE_SUFFIX_CSV));
if (fileName.trim().isEmpty()) {
throw new IllegalArgumentException();
}
}
Run Code Online (Sandbox Code Playgroud)
当用户用小写字母(.csv)指定扩展名时,上面的代码工作正常,但是windows接受区分大小写的扩展名,所以他可以提供类似.CsV,.CSV等.如何修改上面的代码?
提前致谢
Mad*_*tha 13
你为什么不把它变成小写?
while (fileName.toLowerCase().endsWith(".csv")) {
fileName = fileName.substring(0, fileName.toLowerCase().lastIndexOf(FILE_SUFFIX_CSV));
if (fileName.trim().isEmpty()) {
throw new IllegalArgumentException();
}
}
Run Code Online (Sandbox Code Playgroud)
深夜正则表达式解决方案:
Pattern pattern = Pattern.compile(".csv", Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(fileName);
while (matcher.find()) {
fileName = fileName.substring(0, matcher.start());
if (fileName.trim().isEmpty()) {
throw new IllegalArgumentException();
}
}
Run Code Online (Sandbox Code Playgroud)
该Matcher只find()一次.然后,它可以报告start您可以使用的位置到substring原始文件名.
| 归档时间: |
|
| 查看次数: |
249 次 |
| 最近记录: |