【发布时间】:2013-01-13 01:37:34
【问题描述】:
我有一个 xml 文件列表,我试图只返回不带扩展名的文件名。 例如,如果我有:
String filename = "hello.xml";
如果文件名不同,我将如何只返回“你好”?
【问题讨论】:
我有一个 xml 文件列表,我试图只返回不带扩展名的文件名。 例如,如果我有:
String filename = "hello.xml";
如果文件名不同,我将如何只返回“你好”?
【问题讨论】:
String filenameSansExt = filename.replaceAll("\\.[^.]*", "");
【讨论】:
使用substring() 比将replaceAll() 与正则表达式或任何其他正则表达式一起使用更有效。
两个答案都不太令人满意:
'.' 不存在时lastIndexOf() 将抛出异常(索引-1)正确答案必须检查lastIndexOf()的索引。
【讨论】:
您可以在 java 中对字符串使用 substring 函数。您将从 0(字符串的开头)开始并在倒数第 4 个字符(“.”)之前结束
String filename = "hello.xml";
String filename2 = filename.substring(0, filename.length() - 4);
【讨论】:
.时会发生什么?更不用说小于 4 个字符的文件名了?