【问题标题】:How to extract part of a string? [duplicate]如何提取字符串的一部分? [复制]
【发布时间】:2013-01-13 01:37:34
【问题描述】:

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

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

String filename = "hello.xml";

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

【问题讨论】:

    标签: java string


    【解决方案1】:
    String filenameSansExt = filename.replaceAll("\\.[^.]*", "");
    

    【讨论】:

      【解决方案2】:

      使用substring() 比将replaceAll() 与正则表达式或任何其他正则表达式一起使用更有效。

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

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

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

      【讨论】:

        【解决方案3】:

        您可以在 java 中对字符串使用 substring 函数。您将从 0(字符串的开头)开始并在倒数第 4 个字符(“.”)之前结束

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

        【讨论】:

        • 没有扩展名或扩展名超过3个字符+.时会发生什么?更不用说小于 4 个字符的文件名了?
        猜你喜欢
        • 2013-07-30
        • 1970-01-01
        • 2017-09-18
        • 1970-01-01
        • 2018-11-07
        • 1970-01-01
        • 2020-09-28
        • 2020-12-18
        相关资源
        最近更新 更多