【发布时间】:2015-07-07 19:24:38
【问题描述】:
我想编写一个脚本来清理我的 .mp3 文件。
我可以写几行来更改名称,但我想编写一个自动脚本,该脚本将删除所有不需要的字符$%_!?7 等,同时将名称更改为下一种格式Artist space dash Song。
File file = new File("C://Users//nikita//Desktop//$%#Artis8t_-_35&Son5g.mp3");
String Original = file.toString();
String New = "Code to change 'Original' to 'Artist - Song'";
File file2 = new File("C://Users//nikita//Desktop//" + New + ".mp3");
file.renameTo(file2);
我觉得我应该列出所有可能的字符,然后在这个列表中运行字符串并删除所有列出的字符,但我不知道该怎么做。
String test = "$%$#Arti56st_-_54^So65ng.mp3";
编辑 1:
当我尝试使用 remove 方法时,它仍然没有更改名称。
String test = "$%$#Arti56st_-_54^So65ng.mp3";
System.out.println("Original: " + test);
test.replace( "[0-9]%#&\\$", "");
System.out.println("New: " + test);
上面的代码返回如下输出
Original: $%$#Arti56st_-_54^So65ng.mp3
New: $%$#Arti56st_-_54^So65ng.mp3
【问题讨论】:
-
是的,完全正确。字符串本质上只是一个字符数组。有一个包含不需要字符集合的列表或另一个数组,遍历字符串,检查索引处的字符是否在不需要的字符列表中,然后删除。正则表达式也可以。
-
可能没有
s.replace( "[0-9]%#&\\$", "")那么简单——“离家2000光年”呢?还是“10cc”? -
这就是重点。看看 OP 的例子 - 摆脱数字似乎是目标之一。
-
离开爱人的 50 种方法 - Paul Simon。 66 号公路——滚石乐队。在 2525 年 - 扎格和埃文斯。 10.000 名男子 - 鲍勃·迪伦。我的大脑下 50,000 英里 - 十年后
-
@laune 即使我做了你没有建议的解决方案,它仍然不起作用。我编辑了问题。
标签: java string mp3 filenames file-rename