5

我有一个数组,如果它在数组中,我想检查最后一位数字。

例子:

String[] types = {".png",".jpg",".gif"}

String image = "beauty.jpg";
// Note that this is wrong. The parameter required is a string not an array.
Boolean true = image.endswith(types); 

请注意:我知道我可以使用 for 循环检查每个单独的项目。

我想知道是否有更有效的方法来做到这一点。原因是图像字符串已经在不断变化的循环中。

4

3 回答 3

13
Arrays.asList(types).contains(image.substring(image.lastIndexOf('.') + 1))
于 2012-06-19T18:05:41.043 回答
5

您可以对最后 4 个字符进行子串化:

String ext = image.substring(image.length - 4, image.length);

然后使用一个HashMap或其他一些搜索实现来查看它是否在您批准的文件扩展名列表中。

if(fileExtensionMap.containsKey(ext)) {

于 2012-06-19T18:05:19.467 回答
0

使用 Arrays.asList 转换为列表。然后,您可以检查会员资格。

String[] types = {".png",".jpg",".gif"};
String image = "beauty.jpg";
if (image.contains(".")) 
    System.out.println(Arrays.asList(types).contains(
        image.substring(image.lastIndexOf('.'), image.length())));
于 2012-06-19T18:11:24.223 回答