【问题标题】:remove part of file name in java [closed]在java中删除部分文件名[关闭]
【发布时间】:2016-04-14 13:29:51
【问题描述】:

如何在java中替换文件名 我有一个具有以下名称的文件:

file_1234.dat

我想把这个文件改成:

file.dat

以及保持文件内容不变。

谢谢

【问题讨论】:

  • 目录中有很多带有“_1234”或“_5678”的文件我想从_直到删除部分。从每个文件名
  • 没有一个是我想要的复制品
  • 你读过这些答案吗?尽管不是完全相同的副本,但它们为您提供了有关如何实现所需目标的宝贵提示。此外,您的问题不适合 SO。目前尚不清楚,也没有显示任何研究或编码工作。

标签: java file filenames


【解决方案1】:

你可以使用正则表达式。看看下面的例子......这只有在你的文件遵循 _1234 模式时才有效:

      String myString = "hello_123.dat";        //you have a string of your choice
    System.out.println(myString);       //prints the string

    String newString = myString.replaceAll("[_\\d]", "");   
    System.out.println(newString);

所以你会得到这个打印出来:

hello_123.dat 和 hello.dat

如果您的文件名为“file_XMM1234.dat”,您可以使用以下内容:

yourString= "file_XMM1234.dat"
String newString = yourString.replaceFirst("_[^.]*", "");   

这将产生: 文件.dat

【讨论】:

  • 文件名为file_XMM1234.dat和test_XMM456.dat
  • @wearybands,您需要记住 StackOverflow 的答案旨在为您(以及任何有类似问题的人)指明正确的方向,但您可以根据自己的情况调整代码具体需求。不要让自己成为一名复制/粘贴程序员——这是扼杀职业发展的捷径。
【解决方案2】:

你可以使用正则表达式:

String temp = "file_1234.dat";
temp = temp.replaceAll("_\\d+(?=\\.)", "");
System.out.println(temp);

【讨论】:

  • OP 说:“我想将此文件更改为 [...] 以及 保留文件的内容。”这让我想到,他想重命名硬盘上的文件,而不是简单地在内存中进行一些字符串操作。因此,这个问题不清楚,也没有显示出研究或编码工作。因此,它不应该回答!
  • @Seelenvirtuose 很容易弄清楚如何rename() 一个文件...发布的链接足以让他弄清楚。这有助于他处理正则表达式部分。
  • @Seelenvirtuose 我给了他一个很好的起点,但如果你的权利,他仍然需要自己做一些工作/研究。该网站旨在帮助人们...
  • 谁投了反对票?至少说明你为什么投反对票,以便用户有机会更正他们的答案(如果你投反对票的原因是正当的)......
【解决方案3】:

使用下面的

Path source = Paths.get("your/path/file_1234.dat");
Files.move(source, source.resolveSibling((source.getFileName().toString().replaceAll("[_\\d]|[A-Z]", ""))));    

【讨论】:

  • 文件名为file_XMM1234.dat和test_XMM456.dat
猜你喜欢
  • 2020-03-14
  • 1970-01-01
  • 2017-04-08
  • 2018-07-18
  • 2017-12-23
  • 2017-09-16
  • 1970-01-01
  • 2017-12-30
相关资源
最近更新 更多