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"));
}
これは、正規表現で行われますが、読みやすさを犠牲にすることができます。