文字列内の特定の単語を削除します

user8833115566:

文字列=「test20190906.pdf」を考えると、どのように私はそれがstring.replaceまたは削除を使って、文字列から日付を削除することを唯一の「test.pdfという」などで入手できますか?

フォーマットを考慮すると、常にファイル名+日付+。拡張子になります。

ilinykhma:

そこに良い答えの多くがありますが、私は現在のものより欲しいです。ファイル名は、日付の部分だけではなく数字が含まれている場合、それは動作します。私は日付が常に拡張子の前に表示され、長さを固定しているであることを前提としています。

s.replaceAll("\\d{8}\\.pdf", ".pdf");

ファイルの拡張子が変化した場合、その後、あなたはいくつかの追加作業を行うことができます:

public static String removeDate(String s) {
    final String extension = s.substring(s.lastIndexOf("."));
    final String pattern = "\\d{8}\\" + extension;

    return s.replaceAll(pattern, extension);
}

public static void main(String args[])
{
    System.out.println(removeDate("test20190101.pdf"));
    System.out.println(removeDate("123123test20190101.txt"));
    System.out.println(removeDate("123te11st20190101.csv"));
}

これは、正規表現で行われますが、読みやすさを犠牲にすることができます。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=166229&siteId=1