英文:
how to split String of filenames in java
问题
在我的 JavaFX 应用程序中,我正在比较 mp4 的文件名与 png 的文件名,如果它们相同,就会在 ImageView 中呈现。问题是,按照我目前的做法,它还会将文件扩展名(.mp4 或 .png)视为名称,然后表示它们不同。是否有一种方法可以仅在点号前的最后一个字母之前进行比较?我尝试使用了分割(split)方法,但效果不是很好。
这是我的当前代码:
if (listOfFiles[i].getName().contains(imglistOfFiles[j].getName())) {
System.out.println("Identische namen" + imglistOfFiles[j].getName());
}
英文:
In my javaFx application I am comparing mp4 names with the names of png and if they are the same it will be rendered in an imageView. Problem is the way I did it it also takes the file ending (.mp4 or .png) as name and then says it is different. Is there a way to say the comparison only should be until the last letter before the . ? I tried to use split but it did not really work
this is my current code:
if (listOfFiles[i].getName().contains(imglistOfFiles[j].getName())) {
System.out.println("Identische namen" + imglistOfFiles[j].getName());
}
答案1
得分: 1
你应该移除文件扩展部分。你可以使用字符串的 replace()
方法来实现:
if (listOfFiles[i].getName().replaceAll("\\.(.+)$","").equals
(imglistOfFiles[j].getName().replaceAll("\\.(.+)$",""))) {
System.out.println("Identische namen" + imglistOfFiles[j].getName().replaceAll("\\.(.+)$",""));
}
正则表达式 \\.(.+)$
用于查找文件名末尾的扩展名部分。
英文:
You should remove the file extensions part. You can do it with replace()
method of String:
if (listOfFiles[i].getName().replaceAll("(\\..+)$","").equals
(imglistOfFiles[j].getName().replaceAll("(\\..+)$",""))) {
System.out.println("Identische namen" + imglistOfFiles[j].getName().replaceAll("(\\..+)$",""));
}
The regex "\\..+$"
searches for extensions at the end of the file's name.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论