比较Java中的图像大小(KB)

时间:2018-04-17 06:06:25

标签: java filesize

我正在使用api,它给我一个图像的大小,例如200KB(也可以是MB)。现在我需要对特定大小以下的图像执行某些操作。我想要实现的是这样的:

String imgSize = img.getSize();
if(imgSize < 250KB) {
  // Do Something
}

我不能在这里使用关系运算符。有什么可能是达到这个目标的最好方法?

3 个答案:

答案 0 :(得分:3)

除了上一个答案,您还可以执行此类操作。将大小转换为以字节为单位的大小,然后使用Integer.parseInt(String s)获取可以检查的int值。

String bytes = size.replace("KB", "000").replace("MB", "000000");

if (Integer.parseInt(bytes) <= 250000) {
    //Do something.
}

如果您正在处理小数,这可以起作用。

Map<String, Integer> conversions = new HashMap<String, Integer>();
conversions.put("KB", 1000);
conversions.put("MB", 1000000);

//Get numbers from String.
double doubleSize = Double.parseDouble(size.replaceAll("[A-Z]+$", "")); 
//Get units from String.
String units = size.replaceAll("[0-9.]", "");  

double bytes = doubleSize * conversions.get(units);

if (bytes <= 250000) {
    //Do something.
}

答案 1 :(得分:1)

确定imgSize是KB还是MB。如果是MB,则将其转换为KB并使用它。

String imgSize = "";
int imgSizeKB = 0;

switch (imgSize.toUpperCase()) {
    case "KB":
        imgSizeKB = (Integer.parseInt(imgSize.split("KB")[0]));
        break;
    case "MB":
        imgSizeKB = (Integer.parseInt(imgSize.split("MB")[0]) * 1024);
        break;
}

if(imgSizeKB < 250){
    // Do Something
}

现在您可以使用if语句,因为imgSizeKBint

答案 2 :(得分:0)

检查:

sendmail_path   /usr/bin/esmtp -t -i

使用正则表达式提取数字并相应地相乘。