如何在java中删除附加的字符串

如何在java中删除附加的字符串,java,Java,因此,我有一个文件路径,其中包括文件名和扩展名,并附加了System.currentmillis()。现在,如果满足某个条件,我想从中删除System.currentmillis。我该如何做?文件路径如下所示 String filePath = someClass.getFile()+System.currentTimeMillis()+".txt"; 如果您有任何帮助,我们将不胜感激。请提前感谢如果不知道文件名是什么,尤其是文件名的结尾字符,我们无法回答此问题。如果我们假设文件名不会以数字结

因此,我有一个文件路径,其中包括文件名和扩展名,并附加了System.currentmillis()。现在,如果满足某个条件,我想从中删除System.currentmillis。我该如何做?文件路径如下所示

String filePath = someClass.getFile()+System.currentTimeMillis()+".txt";

如果您有任何帮助,我们将不胜感激。请提前感谢

如果不知道文件名是什么,尤其是文件名的结尾字符,我们无法回答此问题。如果我们假设文件名不会以数字结尾,我们可以尝试:

String filePath = "some_file1576645285164.txt";
System.out.println(filePath);
String output = filePath.replaceAll("\\d+(\\.[^.]+)$", "$1");
System.out.println(output);
这张照片是:

some_file1576645285164.txt
some_file.txt

System.currentTimeMillis()的长度现在是13,它的大小需要200多年才能增加1。因此,我试图找到扩展名的索引,并使用它从文件路径中删除时间戳

    String fileName = "fileName1576647662124.txt";
    String extension = ".txt";
    int extensionIndex = fileName.indexOf(extension);
    System.out.println(fileName.substring(0, extensionIndex - 13) + extension);

我们也可以使用数组吗?@Aria我不理解你的评论,你能详细解释一下吗?我的意思是,如果我们可以使用数组,然后将其拆分,实际上情况正好相反,也就是说,在某个正则表达式上拆分字符串,从而生成一个数组。不,根据我的估计,这种方法比我目前的答案更复杂。我之所以这样问是因为我的文件名有可能以数字结尾。如果你能帮忙的话,这种方法的问题是,早一年的文件可能会因为你的逻辑而失败。例如,1998年是
90000000000
,只有12位数字。但在问题陈述中,提到他们正在使用长度为13到200年的System.currentTimeMillis()。这是我在提出解决方案之前所做的假设。你没有抓住我评论的重点。如果他们有一份1998年甚至2001年的文件,以数字结尾,那会怎么样?在这种情况下,历元时间戳将仅为12位,而不是13位,您的答案将不起作用。我写的答案是提到的w.r.t问题。这不是万无一失的@Aria说文件名只包含最新的时间戳。文件名可以包含2001年或之前的时间戳。或者我们可以假设它将是最新的时间戳吗?它将是最新的