如何在Java中拆分文件名的字符串。

huangapple go评论65阅读模式
英文:

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.

huangapple
  • 本文由 发表于 2020年9月16日 02:40:37
  • 转载请务必保留本文链接:https://go.coder-hub.com/63908009.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定