欢迎访问宙启技术站
智能推送

使用Java内置函数库编写函数示例

发布时间:2023-06-18 16:45:49

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+模式,即是否为数字。