工具类

  发现工作中一些小的工具类代码还是挺好用的, 比如获取20位ID,判断一个字符串是否都为数字,判断当天是否是当月的第一天 等等这样的代码, 写的时候也比较快, 但是用的多的话, 还是写篇随笔记录下. 到时候再用到的时候可以直接用.

  获取20位ID

 //获取20位ID
    public static String getGuid() {

        HBYAppUtils.Guid+=1;

        long now = System.currentTimeMillis();
        //获取4位年份数字
        SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy");
        //获取时间戳
        String time=dateFormat.format(now);
        String info=now+"";
        //获取三位随机数
        //int ran=(int) ((Math.random()*9+1)*100);
        //要是一段时间内的数据连过大会有重复的情况,所以做以下修改
        int ran=0;
        if(HBYAppUtils.Guid>999){
            HBYAppUtils.Guid=100;
        }
        ran=HBYAppUtils.Guid;
        return time+info.substring(2, info.length())+ran;
    }

   判断一个字符串是否都为数字

 public static HashMap<String, Boolean> isDigit(String str) {
        HashMap<String, Boolean> map = new HashMap<>();
        String reg = "^[0-9]+(.[0-9]+)?$";
        boolean isWord = str.matches("[a-zA-Z]+");
        boolean isNumber = str.matches(reg);
        map.put("isWord", isWord);
        map.put("isNumber", isNumber);
        return map;
    }

  判断当天是否是当月的第一天,获取昨天的日期

//获取昨天的日期
    public static String yesterday() {
        DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        Calendar calendar = Calendar.getInstance();
        calendar.set(Calendar.HOUR_OF_DAY, -24);
        String yesterdayDate = dateFormat.format(calendar.getTime());
        return yesterdayDate;
    }

    //判断当天是否是当月的第一天
    public static boolean isOne() {
        boolean flag = false;
        Calendar c = Calendar.getInstance();//可以对每个时间域单独修改
        int date = c.get(Calendar.DATE);
        if (date == 1) {
            return true;
        }
        return flag;
    }

   获取随机六位数验证码

public static String code() {
        String sources = "0123456789"; // 加上一些字母,就可以生成pc站的验证码了
        Random rand = new Random();
        StringBuffer flag = new StringBuffer();
        for (int j = 0; j < 6; j++) {
            flag.append(sources.charAt(rand.nextInt(9)) + "");
        }
        return flag.toString();
    }

   利用流获取PDF某某关键字同一行的内容

 public static ArrayList<String> ssxqContent(String path, String ssContent) {
        ArrayList<String> list = new ArrayList<>();

        try {
            URL url = new URL(path);
            URLConnection conn = url.openConnection();
            PDDocument document = null;
            // 方式一:
            InputStream input = conn.getInputStream();
            //加载 pdf 文档
            PDFParser parser = new PDFParser(new RandomAccessBuffer(input));
            parser.parse();
            document = parser.getPDDocument();

            // 方式二:
//            document= PDDocument.load(pdfFile);

            // 获取页码
            int pages = document.getNumberOfPages();

            // 读文本内容
            PDFTextStripper stripper = new PDFTextStripper();
            // 设置按顺序输出
            stripper.setSortByPosition(true);
            stripper.setStartPage(1);
            stripper.setEndPage(pages);
            String content = stripper.getText(document);
//System.out.println(content);
            String str = "";
            BufferedReader bre = new BufferedReader(new InputStreamReader(new ByteArrayInputStream(content.getBytes(Charset.forName("utf8"))), Charset.forName("utf8")));
            while ((str = bre.readLine()) != null) {
                if (str.contains(ssContent)) {
                    list.add(str);
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
            return list;
        }
        return list;

    }

  

posted @ 2020-04-23 23:37  经济人  阅读(180)  评论(0编辑  收藏  举报