如何提取部分字符串?

时间:2013-01-13 01:37:34

标签: java string

  

可能重复:
  How to get file name without the extension?

我有一个xml文件列表,我试图只返回没有扩展名的文件名。 例如,如果我有:

String filename = "hello.xml";

如果文件名不同,我将如何只返回“hello”?

3 个答案:

答案 0 :(得分:2)

String filenameSansExt = filename.replaceAll("\\.[^.]*", "");

答案 1 :(得分:1)

使用substring()效率更高,而不是将replaceAll()与正则表达式或任何其他正则表达式一起使用。

两个答案都不太令人满意:

  • 正则表达式太慢,但正确
  • lastIndexOf()不存在时,
  • '.'会抛出异常(索引-1

正确答案必须检查lastIndexOf()的索引。

答案 2 :(得分:-1)

您可以在java中使用字符串的子字符串函数。您将从0开始(字符串的开头)并在第4个到最后一个字符(“。”)之前结束

String filename = "hello.xml";
String filename2 = filename.substring(0, filename.length() - 4);
相关问题