为了账号安全,请及时绑定邮箱和手机立即绑定

删除字符串的尾随字符

删除字符串的尾随字符

慕妹3242003 2023-05-17 17:41:17
如果有任何意义,我需要修剪文件名以仅获取有意义的名称。例如,我有这个文件: myFileName_XYZ_2901_20.dat我只想提取它的名称:myFileName_XYZ。我现在有这个:    String word = myFileName.replaceAll("([^_.*\0-9 ])", "");但是当我调试时它给了我:__201901_20.我该如何解决?谢谢
查看完整描述

3 回答

?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

这将删除带有数字和下划线但不包含扩展名的最后部分

String word = myFileName.replaceAll("(_\\d+_\\d+)", "");

结果

我的文件名_XYZ.dat


查看完整回答
反对 回复 2023-05-17
?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

您不需要为此使用正则表达式;只需要_在第二个字符之前的所有内容String

String word = myFileName.substring(0, 
    myFileName.indexOf('_', myFileName.indexOf('_') + 1));

输出:

myFileName_XYZ

请注意,这假定两者均myFileNameXYZ包含任何_字符。


查看完整回答
反对 回复 2023-05-17
?
拉丁的传说

TA贡献1789条经验 获得超8个赞

模式可能是您最终需要的,但如果您打算删除的模式最终成为您想要保留的文件名部分的一部分,您将获得意想不到的结果。


如果末尾总是相同的模式 –  _XXXX_YY.dat– 您可以从末尾删除固定长度的 12 个字符。这将打印“myFileName_XYZ”:


String s = "myFileName_XYZ_2901_20.dat";

int length = s.length() - 12;

System.out.println(s.substring(0, length));


查看完整回答
反对 回复 2023-05-17
  • 3 回答
  • 0 关注
  • 111 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信