使用string.equals方法缩短if()

bak*_*408 5 java if-statement

有没有办法缩短这个if()陈述?为了避免string.equals()某种方式重复?

if (extension.equals("jpg") || extension.equals("JPG") || extension.equals("png") || extension.equals("PNG") || extension.equals("bmp") || extension.equals("BMP") || extension.equals("jpeg") || extension.equals("JPEG"))
{
    tmp.setIcon(new ImageIcon(getClass().getResource("/menage/Resources/imageIco.png")));
}
Run Code Online (Sandbox Code Playgroud)

看起来像这样的东西:

if (extension.equals(("jpg")||("JPG")||("png")||("PNG")||("bmp")||("BMP")||("jpeg")||("JPEG")))
{
    tmp.setIcon(new ImageIcon(getClass().getResource("/menage/Resources/imageIco.png"));)
}
Run Code Online (Sandbox Code Playgroud)

我知道这个问题看起来很奇怪,但是if()如此长的条件列表不清楚,需要大量的写作.

Hov*_*els 5

首先equals(...)改为equalsIgnoreCase(...).

其他选项,使用您的图像扩展创建一个小写字符串的HashSet(或大写字母,如果需要),并查看它是否包含您感兴趣的字符串,更改为小写:

if (imageExtSet.contains(myExtension.toLowerCase()) {

}
Run Code Online (Sandbox Code Playgroud)