java 常用工具类 (值得收藏)

简介: java 常用工具类 (值得收藏)
package org.fh.util;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Random;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
 * 说明:常用工具
 * 作者:FH Admin
 * from:fhadmin.cn
 */
public class Tools {
  /**
   * 随机生成六位数验证码 
   * @return
   */
  public static int getRandomNum(){
     Random r = new Random();
     return r.nextInt(900000)+100000;//(Math.random()*(999999-100000)+100000)
  }
  /**
   * 随机生成四位数验证码 
   * @return
   */
  public static int getRandomNum4(){
     Random r = new Random();
     return r.nextInt(9000)+1000;
  }
  /**
   * 随机生成两位数验证码 
   * @return
   */
  public static int getRandomNum2(){
     Random r = new Random();
     return r.nextInt(90)+10;
  }
  /**
   * 检测字符串是否不为空(null,"","null")
   * @param s
   * @return 不为空则返回true,否则返回false
   */
  public static boolean notEmpty(String s){
    return s!=null && !"".equals(s) && !"null".equals(s);
  }
  /**
   * 检测字符串是否为空(null,"","null")
   * @param s
   * @return 为空则返回true,不否则返回false
   */
  public static boolean isEmpty(String s){
    return s==null || "".equals(s) || "null".equals(s);
  }
  /**
   * 字符串转换为字符串数组
   * @param str 字符串
   * @param splitRegex 分隔符
   * @return
   */
  public static String[] str2StrArray(String str,String splitRegex){
    if(isEmpty(str)){
      return null;
    }
    return str.split(splitRegex);
  }
  /**
   * 用默认的分隔符(,)将字符串转换为字符串数组
   * @param str 字符串
   * @return
   */
  public static String[] str2StrArray(String str){
    return str2StrArray(str,",\\s*");
  }
  /**
   * 往文件里的内容
   * @param filePath  文件路径
   * @param content  写入的内容
   */
  public static void writeFile(String fileP,String content){
    String filePath = String.valueOf(Thread.currentThread().getContextClassLoader().getResource(""))+"../../";  //项目路径
    filePath = filePath.replaceAll("file:/", "");
    filePath = filePath.replaceAll("%20", " ");
    filePath = filePath.trim() + fileP.trim();
    if(filePath.indexOf(":") != 1){
      filePath = File.separator + filePath;
    }
    try {
          OutputStreamWriter write = new OutputStreamWriter(new FileOutputStream(filePath),"utf-8");      
          BufferedWriter writer=new BufferedWriter(write);          
          writer.write(content);      
          writer.close(); 
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
  /**
   * 往文件里的内容(Projectpath下)
   * @param filePath  文件路径
   * @param content  写入的内容
   */
  public static void writeFileCR(String fileP,String content){
    String filePath = PathUtil.getProjectpath() + fileP;
    try {
          OutputStreamWriter write = new OutputStreamWriter(new FileOutputStream(filePath),"utf-8");      
          BufferedWriter writer=new BufferedWriter(write);          
          writer.write(content);      
          writer.close(); 
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
  /**
    * 验证邮箱
    * @param email
    * @return
    */
   public static boolean checkEmail(String email){
    boolean flag = false;
    try{
      String check = "^([a-z0-9A-Z]+[-|_|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$";
      Pattern regex = Pattern.compile(check);
      Matcher matcher = regex.matcher(email);
      flag = matcher.matches();
     }catch(Exception e){
      flag = false;
     }
    return flag;
   }
   /**
    * 验证手机号码
    * @param mobiles
    * @return
    */
   public static boolean checkMobileNumber(String mobileNumber){
    boolean flag = false;
    try{
      Pattern regex = Pattern.compile("^(((13[0-9])|(15([0-3]|[5-9]))|(18[0,5-9]))\\d{8})|(0\\d{2}-\\d{8})|(0\\d{3}-\\d{7})$");
      Matcher matcher = regex.matcher(mobileNumber);
      flag = matcher.matches();
     }catch(Exception e){
      flag = false;
     }
    return flag;
   }
  /**
   * 检测KEY是否正确
   * @param paraname  传入参数
   * @param FKEY    接收的 KEY
   * @return 为空则返回true,不否则返回false
   */
  public static boolean checkKey(String paraname, String FKEY){
    paraname = (null == paraname)? "":paraname;
    return MD5.md5(paraname+DateUtil.getDays()+",fh,").equals(FKEY);
  }
  /**读取txt里的全部内容
   * @param fileP  文件路径
   * @param encoding  编码
   * @return
   */
  public static String readTxtFileAll(String fileP, String encoding) {
    StringBuffer fileContent = new StringBuffer(); 
    try {
      String filePath = String.valueOf(Thread.currentThread().getContextClassLoader().getResource(""))+"../../";  //项目路径
      filePath = filePath.replaceAll("file:/", "");
      filePath = filePath.replaceAll("%20", " ");
      filePath = filePath.trim() + fileP.trim();
      if(filePath.indexOf(":") != 1){
        filePath = File.separator + filePath;
      }
      File file = new File(filePath);
      if (file.isFile() && file.exists()) {     // 判断文件是否存在
        InputStreamReader read = new InputStreamReader(
        new FileInputStream(file), encoding); // 考虑到编码格式
        BufferedReader bufferedReader = new BufferedReader(read);
        String lineTxt = null;
        while ((lineTxt = bufferedReader.readLine()) != null) {
          fileContent.append(lineTxt);
          fileContent.append("\n");
        }
        read.close();
      }else{
        System.out.println("找不到指定的文件,查看此路径是否正确:"+filePath);
      }
    } catch (Exception e) {
      System.out.println("读取文件内容出错");
    }
    return fileContent.toString();
  }
  /**
   * 读取Projectpath某文件里的全部内容
   * @param filePath  文件路径
   */
  public static String readFileAllContent(String fileP) {
    StringBuffer fileContent = new StringBuffer(); 
    try {
      String encoding = "utf-8";
      File file = new File(PathUtil.getProjectpath() + fileP);//文件路径
      if (file.isFile() && file.exists()) {     // 判断文件是否存在
        InputStreamReader read = new InputStreamReader(
        new FileInputStream(file), encoding); // 考虑到编码格式
        BufferedReader bufferedReader = new BufferedReader(read);
        String lineTxt = null;
        while ((lineTxt = bufferedReader.readLine()) != null) {
          fileContent.append(lineTxt);
          fileContent.append("\n");
        }
        read.close();
      }else{
        System.out.println("找不到指定的文件,查看此路径是否正确:"+fileP);
      }
    } catch (Exception e) {
      System.out.println("读取文件内容出错");
    }
    return fileContent.toString();
  }
  public static void main(String[] args) {
    System.out.println(getRandomNum());
  }
}

 

目录
相关文章
|
16天前
|
Java Linux
java基础(3)安装好JDK后使用javac.exe编译java文件、java.exe运行编译好的类
本文介绍了如何在安装JDK后使用`javac.exe`编译Java文件,以及使用`java.exe`运行编译好的类文件。涵盖了JDK的安装、环境变量配置、编写Java程序、使用命令行编译和运行程序的步骤,并提供了解决中文乱码的方法。
36 1
|
16天前
|
Java 索引
java基础(13)String类
本文介绍了Java中String类的多种操作方法,包括字符串拼接、获取长度、去除空格、替换、截取、分割、比较和查找字符等。
28 0
java基础(13)String类
|
4天前
|
Java
Java Object 类详解
在 Java 中,`Object` 类是所有类的根类,每个 Java 类都直接或间接继承自 `Object`。作为所有类的超类,`Object` 定义了若干基本方法,如 `equals`、`hashCode`、`toString` 等,这些方法在所有对象中均可使用。通过重写这些方法,可以实现基于内容的比较、生成有意义的字符串表示以及确保哈希码的一致性。此外,`Object` 还提供了 `clone`、`getClass`、`notify`、`notifyAll` 和 `wait` 等方法,支持对象克隆、反射机制及线程同步。理解和重写这些方法有助于提升 Java 代码的可读性和可维护性。
|
27天前
|
Java 编译器
Java——类与对象(继承和多态)
本文介绍了面向对象编程中的继承概念,包括如何避免重复代码、构造方法的调用规则、成员变量的访问以及权限修饰符的使用。文中详细解释了继承与组合的区别,并探讨了多态的概念,包括向上转型、向下转型和方法的重写。此外,还讨论了静态绑定和动态绑定的区别,以及多态带来的优势和弊端。
28 9
Java——类与对象(继承和多态)
|
27天前
|
SQL Java 编译器
Java——类与对象(封装)
封装是面向对象编程中的概念,指将数据(属性)和相关操作(方法)组合成独立单元(类),使外部无法直接访问对象的内部状态,只能通过提供的方法进行交互,从而保护数据安全。例如,手机将各种组件封装起来,只暴露必要的接口供外部使用。实现封装时,使用`private`关键字修饰成员变量,并提供`get`和`set`方法进行访问和修改。此外,介绍了包的概念、导入包的方式及其注意事项,以及`static`关键字的使用,包括静态变量和方法的初始化与代码块的加载顺序。
26 10
Java——类与对象(封装)
|
9天前
|
Java API
Java的日期类都是怎么用的
【10月更文挑战第1天】本文介绍了 Java 中处理日期和时间的三个主要类:`java.util.Date`、`java.util.Calendar` 和 `java.time` 包下的新 API。`Date` 类用于表示精确到毫秒的瞬间,可通过时间戳创建或获取当前日期;`Calendar` 抽象类提供丰富的日期操作方法,如获取年月日及时区转换;`java.time` 包中的 `LocalDate`、`LocalTime`、`LocalDateTime` 和 `ZonedDateTime` 等类则提供了更为现代和灵活的日期时间处理方式,支持时区和复杂的时间计算。
29 14
|
27天前
|
Java C语言
Java——类与对象
这段内容介绍了Java中的类和对象、`this`关键字及构造方法的基本概念。类是对现实世界事物的抽象描述,包含属性和方法;对象是类的实例,通过`new`关键字创建。`this`关键字用于区分成员变量和局部变量,构造方法用于初始化对象。此外,还介绍了标准JavaBean的要求和生成方法。
22 9
Java——类与对象
|
26天前
|
存储 安全 Java
Java——String类详解
String 是 Java 中的一个类,用于表示字符串,属于引用数据类型。字符串可以通过多种方式定义,如直接赋值、创建对象、传入 char 或 byte 类型数组。直接赋值会将字符串存储在串池中,复用相同的字符串以节省内存。String 类提供了丰富的方法,如比较(equals() 和 compareTo())、查找(charAt() 和 indexOf())、转换(valueOf() 和 format())、拆分(split())和截取(substring())。此外,还介绍了 StringBuilder 和 StringJoiner 类,前者用于高效拼接字符串,后者用于按指定格式拼接字符串
24 1
Java——String类详解
|
17天前
|
存储 Java
Java编程中的对象和类
【8月更文挑战第55天】在Java的世界中,“对象”与“类”是构建一切的基础。就像乐高积木一样,类定义了形状和结构,而对象则是根据这些设计拼装出来的具体作品。本篇文章将通过一个简单的例子,展示如何从零开始创建一个类,并利用它来制作我们的第一个Java对象。准备好让你的编程之旅起飞了吗?让我们一起来探索这个神奇的过程!
26 10
|
13天前
|
安全 Java 编译器
java访问类字段
java访问类字段