java随手记

发布时间 2023-07-13 10:37:08作者: koodu

java中关于日期的转换

        Date nowTime=new Date();//获取系统时间;
        SimpleDateFormat adf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
        String nt=adf.format(nowTime);
        System.out.println(nt);
        String time="2022-03-13 12:30:16 666";
        SimpleDateFormat sdf2=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
        Date dTime= sdf2.parse(time);
        System.out.println(dTime);

获取自1970.1.1 00:00:00 到当前的时间

long nowTimeMill=System.currentTimeMillis();

遍历Map集合

        Map<Integer, String> m = new HashMap<>();
        m.put(122266, "666");
        m.put(111111, "123");
        m.put(24444, "sdef");
/*        String s = m.get(11);
        System.out.println(s);
        System.out.println(m.size());*/
/*        Set<Integer> se=m.keySet();//将所有的key获取存到set集合;
        Iterator<Integer> it=se.iterator();
        while(it.hasNext())
        {
            Integer in=it.next();
            String val=m.get(in);
            System.out.println(val);
        }*/
        Set<Map.Entry<Integer,String>> set=m.entrySet();
        for(Map.Entry<Integer,String> node:set)
        {
            System.out.println(node.getKey()+" "+node.getValue());
        }
        Iterator<Map.Entry<Integer,String>> it=set.iterator();
        while(it.hasNext())
        {
            Map.Entry<Integer,String> node=it.next();
            Integer key=node.getKey();
            String value=node.getValue();
            System.out.println(key+" "+value);
        

TreeSet TreeMap自平衡二叉树,自动排序

对于自定义类,可制定排序规则

class build{
private int age;
...
}
class Build implements Comparator<build>{
  public int compareTo(build d1,build d2){
  return d1.age-d2.age;
  }
}
TreeSet<build> bb=new TreeSet<>(new Build());

正则表达式

Pattern p=Pattern.compile(string);//string 为正则表达式匹配的标准 模板串
Mather m=p.matcher(string);//string为要匹配的目标串
while(m.find())//有匹配
{
string s=m.group();
}

BufferedReader

BufferedReader br=new BufferedReader(new FileReader("IOcontrolfile/File4"));//文件字符流
s=br.readLine();//从文件中读取的一行字符串放到s

找最长子串

//找最长子串
public class Test008 {
    public static void main(String[] args) {
        String str1="iabcdehellosdgaabcd";
        String str2="aabcdhelloewthellotuihellobdu35";
        String str3=getMax(str1,str2);
        System.out.println(str3);
        System.out.println("-----------------------------------------------");
        String[] strings=getMaxArray(str1,str2);
        for(String s:strings){
            System.out.println(s);
        }
    }
    public static String getMax(String s1,String s2){//返回的是只有一个最长串
        String sMax=(s1.length()>=s2.length())?s1:s2;
        String sMin=(s1.length()<s2.length())?s1:s2;
        int length=sMin.length();
        for(int i=0;i<length;i++){
            for(int x=0,y=length-i;y<=length;x++,y++){//先从最长的子串取,逐个减少
                String s3=sMin.substring(x,y);
                System.out.println(s3);
                if(sMax.contains(s3)){
                    return s3;
                }
            }
        }
        return null;
    }
    public static String[] getMaxArray(String s1,String s2){//返回的是一组相同长度的串组
        if(s1!=null&&s2!=null){
            StringBuffer sbr=new StringBuffer();
            String sMax=(s1.length()>=s2.length())?s1:s2;
            String sMin=(s1.length()<s2.length())?s1:s2;
            int length=sMin.length();
            for(int i=0;i<length;i++){
                for(int x=0,y=length-i;y<=length;x++,y++){
                    String s3=sMin.substring(x,y);
                    if(sMax.contains(s3)){//s3是目标字符串
                        int k=0;
                        while((k=sMax.indexOf(s3,k))!=-1){
                            k+=s3.length();
                            sbr.append(s3+" ");
                        }
                    }
                }
                if(sbr.length()!=0){
                    String sss=sbr.toString();
                    sss.trim();
                    String[] strings=sss.split(" ");
                    return strings;
                }
            }
        }
        return null;
    }
}

测试_junit_

在一个测试类的测试方法前加注接@Test导入junit测试,让该方法可以单独测试执行

有时测试的结果不一定正确,可以使用断言判断,断言是程序执行前有一个预计的结果,将该结果与程序执行结果比较判断,不符则执行出错

Assert.assertEquals(expected,result);

测试方法开始前的初始化和结束后的释放
  1. 初始化方法,在方法前加上@Before,所有的测试方法执行前都会执行该方法进行资源分配
  2. 释放资源方法,在方法前加上@After,所有的方法结束后执行该方法释放资源