我可以在java中的endswith方法中使用通配符查询

时间:2011-05-02 08:43:31

标签: java

我需要以.doc结束所有文件,并且我有一些自定义扩展程序,例如.doc.25-40.doc2等。我需要使用.doc.*

获取所有扩展程序
filename.endsWith(".doc.*"); 

失败了为什么?

3 个答案:

答案 0 :(得分:4)

不,这不起作用。 Java不支持简单的通配符。您必须使用Regex方法,例如:

filename.matches(".*\\.doc.*")

说明:

.*   // any text
\\.  // a period
doc  // "doc"
.*   // any text

答案 1 :(得分:4)

因为那与

相同
filename.contains(".doc");

失败,因为字符串比较是文字的,例如file.DOC也会失败。

答案 2 :(得分:0)

String.endsWith()查找特定的char序列,不能使用通配符。您正在寻找的是使用正则表达式的String.matches(String regex)。

filename.matches(".*\\.doc.*")