使用Java内置函数库编写函数示例
Java内置函数库提供了众多的函数和类,可以方便地完成各种任务。下面给出几个使用Java内置函数库编写函数的示例。
1. 计算文件的MD5值
MD5是一种不可逆的哈希函数,可以对任意长度的数据生成128位的哈希值。在Java中,可以使用MessageDigest类来计算MD5值。
import java.io.FileInputStream;
import java.security.MessageDigest;
public static String getMD5(String filename) throws Exception {
MessageDigest md = MessageDigest.getInstance("MD5");
FileInputStream fis = new FileInputStream(filename);
byte[] buffer = new byte[8192];
int len;
while ((len = fis.read(buffer)) != -1) {
md.update(buffer, 0, len);
}
fis.close();
byte[] digest = md.digest();
StringBuilder sb = new StringBuilder();
for (byte b : digest) {
sb.append(String.format("%02x", b));
}
return sb.toString();
}
该函数接受一个文件名作为参数,返回该文件的MD5值。首先获取MessageDigest实例,并读取文件内容,逐步更新MD5值。最后将结果用十六进制表示并返回。
2. 生成随机数
在Java中,可以使用Math类提供的random函数生成伪随机数。如果需要更好的随机性,可以使用SecureRandom类。
import java.security.SecureRandom;
public static int getRandomInt(int min, int max) {
SecureRandom random = new SecureRandom();
return random.nextInt(max - min + 1) + min;
}
该函数接受两个整数参数,返回[min, max]区间内的随机整数。首先获取SecureRandom实例,并使用nextInt函数生成随机整数。注意,nextInt函数的参数为随机数的范围,不包括参数本身。
3. 计算两个日期之间的天数
Java中提供了许多日期函数,可以方便地计算日期之间的差值。这里使用LocalDate类。
import java.time.LocalDate;
import java.time.temporal.ChronoUnit;
public static long getDaysBetween(LocalDate date1, LocalDate date2) {
return ChronoUnit.DAYS.between(date1, date2);
}
该函数接受两个LocalDate类型的参数,返回两个日期之间的天数。使用between函数计算两个日期之间相差的天数,注意返回值类型为long。
4. 将字符串转化为日期
在Java中,可以使用SimpleDateFormat类将字符串转化为日期。需要注意的是,日期格式必须与字符串格式匹配。
import java.text.SimpleDateFormat;
import java.util.Date;
public static Date parseDate(String str, String format) throws Exception {
SimpleDateFormat sdf = new SimpleDateFormat(format);
return sdf.parse(str);
}
该函数接受一个字符串和一个日期格式字符串作为参数,返回对应的日期。首先获取SimpleDateFormat实例,并使用parse函数将字符串转化为日期。如果日期格式不匹配,将抛出异常。
5. 判断字符串是否为数字
在Java中,可以使用正则表达式检测字符串是否匹配特定模式。这里使用\d表示数字。
public static boolean isNumeric(String str) {
return str.matches("\\d+");
}
该函数接受一个字符串参数,返回布尔值。使用matches函数检测字符串是否匹配\d+模式,即是否为数字。
