java 常用工具方法

1.需求场景

java 开发常用工具方法

2.环境

JDK1.7

3.方法

(1)java计算时间差及比较时间大小

//方法一
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try
{
Date d1 = df.parse("2019-03-26 13:31:40");
Date d2 = df.parse("2019-01-02 11:30:24");
long diff = d1.getTime() - d2.getTime();
long days = diff / (1000 * 60 * 60 * 24);
}
catch (Exception e)
{
}

//方法二
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
java.util.Date now = df.parse("2019-03-26 13:31:40");
java.util.Date date=df.parse("2019-01-02 11:30:24");
long l=now.getTime()-date.getTime();
long day=l/(24*60*60*1000);
long hour=(l/(60*60*1000)-day*24);
long min=((l/(60*1000))-day*24*60-hour*60);
long s=(l/1000-day*24*60*60-hour*60*60-min*60);
System.out.println(""+day+"天"+hour+"小时"+min+"分"+s+"秒");

//方法三
SimpleDateFormat dfs = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
java.util.Date begin=dfs.parse("2004-01-02 11:30:24");
java.util.Date end = dfs.parse("2004-03-26 13:31:40");
long between=(end.getTime()-begin.getTime())/1000;//除以1000是为了转换成秒

long day1=between/(24*3600);
long hour1=between%(24*3600)/3600;
long minute1=between%3600/60;
long second1=between%60/60;
System.out.println(""+day1+"天"+hour1+"小时"+minute1+"分"+second1+"秒");

//比较时间大小

String s1="2019-01-25 09:12:09";
String s2="2019-01-29 09:12:11";
java.text.DateFormat df=new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
java.util.Calendar c1=java.util.Calendar.getInstance();
java.util.Calendar c2=java.util.Calendar.getInstance();
try
{
c1.setTime(df.parse(s1));
c2.setTime(df.parse(s2));
}catch(java.text.ParseException e){
System.err.println("格式不正确");
}
int result=c1.compareTo(c2);
if(result==0)
System.out.println("c1相等c2");
else if(result<0)
System.out.println("c1小于c2");
else
System.out.println("c1大于c2");

(2)替换字符串中的空格和制表符

public  String replaceBlank(String str) {
		String dest = "";
		if (str!=null) {
			Pattern p = Pattern.compile("\\s*|\t|\r|\n");
			Matcher m = p.matcher(str);
			dest = m.replaceAll("");
		}
		return dest;
	}

(3)set集合 求交集,差集,并集

Set<String> result = new HashSet<String>();
Set<String> set1 = new HashSet<String>();
Set<String> set2 = new HashSet<String>();

result.clear();
result.addAll(set1);
result.remainAll(set2);
System.out.println("交集:" + result);

result.clear();
result.addAll(set1);
result.removeAll(set2);
System.out.println("交集:" + result);

result.clear();
result.addAll(set1);
result.addAll(set2);
System.out.println("并集:" + result);

(4)数字格式化


double pi=3.1415927;//圆周率
//取一位整数 
System.out.println(new DecimalFormat("0").format(pi));//3
//取一位整数和两位小数  
System.out.println(new DecimalFormat("0.00").format(pi));//3.14
//取两位整数和三位小数,整数不足部分以0填补。  
System.out.println(new DecimalFormat("00.000").format(pi));//03.142  
//取所有整数部分  
System.out.println(new DecimalFormat("#").format(pi));//3  
//以百分比方式计数,并取两位小数  
System.out.println(new DecimalFormat("#.##%").format(pi));//314.16%  

(5)字符串左填充

/*  c 要填充的字符    
    *  length 填充后字符串的总长度    
    *  content 要格式化的字符串   
    *  格式化字符串,左对齐 
    * */  
 public String flushLeft(char c, long length, String content){             
       String str = "";     
       long cl = 0;    
       String cs = "";     
       if (content.length() > length){     
            str = content;     
       }else{    
            for (int i = 0; i < length - content.length(); i++){     
                cs = cs + c;     
            }  
          }  
        str = content + cs;      
        return str;      
   }    

(6)按行读取文件

public void readFile() throws IOException {
        FileInputStream fis=new FileInputStream("E:demo.txt");
        InputStreamReader isr=new InputStreamReader(fis, "UTF-8");
        BufferedReader br = new BufferedReader(isr);
        //简写如下
        //BufferedReader br = new BufferedReader(new InputStreamReader(
        //        new FileInputStream("E:demo.txt"), "UTF-8"));
        String line="";
        String[] arrs=null;
        while ((line=br.readLine())!=null) {
            arrs=line.split(",");
            System.out.println(arrs[0] + " : " + arrs[1] + " : " + arrs[2]);
        }
        br.close();
        isr.close();
        fis.close();
    }

(7)文件追加写入

    /**  
     * B方法追加文件:使用FileWriter  
     * @param fileName  
     * @param content  
    */  
    public static void appendMethodB(String fileName, String content) {   
        try {   
            //打开一个写文件器,构造函数中的第二个参数true表示以追加形式写文件   
            FileWriter writer = new FileWriter(fileName, true);   
            writer.write(content);   
            writer.close();   
        } catch (IOException e) {   
            e.printStackTrace();   
        }   
    }   

(8)递归显示和删除文件

/**
          * 打印f路径下所有的文件和文件夹
          * @param f 文件对象
          */
         public static void printAllFile(File f){
                   //打印当前文件名
                   System.out.println(f.getName());
                   //是否是文件夹
                   if(f.isDirectory()){
                            //获得该文件夹下所有子文件和子文件夹
                            File[] f1 = f.listFiles();
                            //循环处理每个对象
                            int len = f1.length;
                            for(int i = 0;i < len;i++){
                                     //递归调用,处理每个文件对象
                                     printAllFile(f1[i]);
                            }
                   }
         }
        
         /**
          * 删除对象f下的所有文件和文件夹
          * @param f 文件路径
          */
         public static void deleteAll(File f){
                   //文件
                   if(f.isFile()){
                            f.delete();
                   }else{ //文件夹
                            //获得当前文件夹下的所有子文件和子文件夹
                            File f1[] = f.listFiles();
                            //循环处理每个对象
                            int len = f1.length;
                            for(int i = 0;i < len;i++){
                                     //递归调用,处理每个文件对象
                                     deleteAll(f1[i]);
                            }
                            //删除当前文件夹
                            f.delete();
                   }
         }

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值