java 有两个前导有零的字符串,转化为Long类型进行循环计算,然后转化为Long类型,会去掉前面的零,但是循环里又需要取原值(需要根据原值做业务),这两个前导有零的字符串并不知道有多少个零,所以,不能在循环里固定的去补零?
那就 保留这两个字符串呗, 用它们对应的字符串副本进行处理
BufferedImage bfi = ImageIO.read( file);
BufferedImage newBufferedImage = new BufferedImage(bfi.getWidth(),
bfi.getHeight(), BufferedImage.TYPE_INT_RGB);
newBufferedImage.createGraphics().drawImage(bfi, 0, 0, Color.WHITE, null);
ImageIO.write(newBufferedImage, “jpg”, temp);
FileInputStream inputStream = new FileInputStream(temp);
MultipartFile multipartFile = new MockMultipartFile(temp.getName(), temp.getName(),
ContentType.APPLICATION_OCTET_STREAM.toString(), inputStream);
multipartFile 的位数就改成24了
带尺寸的图片:
居中的图片:
居中并且带尺寸的图片:
当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。
代码如下:
public class Solution {
public static void main(String[] args) {
String str1 = "00123"; // 要转换的字符串1
String str2 = "000456"; // 要转换的字符串2
Long l1 = Long.valueOf(str1); // 将字符串1转换为Long类型
Long l2 = Long.valueOf(str2); // 将字符串2转换为Long类型
System.out.println("转换后:" + l1 + "," + l2);
System.out.println("转换后,依旧包含前导零:" + String.format("%07d", l1) + "," + String.format("%07d", l2));
}
}
解释如下:
Long
类的valueOf()
方法将两个字符串转换为Long
类型。Long
类型,可以发现前导零被去掉了。String
的format()
方法,将转换后的Long
类型转换为字符串,并保留前导零。其中,参数%07d
中的0表示要填充的字符,7表示数字的位数,d表示要填充的值为10进制整数。这样就可以将前导零转换为Long类型,并且在循环计算中保留原值了。