programming specification

string的非空判斷

若是String自己是null,那麼使用string.isEmpty()會報空指針異常(NullPointerException)
string.isEmpty()的方法只判斷了字符串的長度是否爲0;
建議使用(id ==null || id.isEmpty()) 或(id==null || id=="")
也能夠使用spring框架的 ObjectUtils.isEmpty(obj)
        String kong="";
        String nul=null;
        System.out.println(ObjectUtils.isEmpty(kong)); //true
        System.out.println(ObjectUtils.isEmpty(nul));  //true
    源碼:public static boolean isEmpty(@Nullable Object obj) {
        if (obj == null) {
            return true;
        } else if (obj instanceof Optional) {
            return !((Optional)obj).isPresent();
        } else if (obj instanceof CharSequence) {
            return ((CharSequence)obj).length() == 0;
        } else if (obj.getClass().isArray()) {
            return Array.getLength(obj) == 0;
        } else if (obj instanceof Collection) {
            return ((Collection)obj).isEmpty();
        } else {
            return obj instanceof Map ? ((Map)obj).isEmpty() : false;
        }
    }

Integer是否相等

a.intValue() == b.intValue()

double的加減乘除

double d1 = Double.parseDouble("3.560");
        double d2 = Double.parseDouble("1.23");
        BigDecimal bd1 = new BigDecimal(Double.toString(d1));
        BigDecimal bd2 = new BigDecimal(Double.toString(d2));
        System.out.println(bd1);//3.56
        System.out.println(bd2);//1.23
        //如下方法依次爲加減乘除
        System.out.println(bd1.add(bd2).doubleValue());            //4.79
        System.out.println(bd1.subtract(bd2).doubleValue());       //2.33
        System.out.println(bd1.multiply(bd2).doubleValue());       //4.3788
        System.out.println(bd1.divide(bd2,2,BigDecimal.ROUND_HALF_UP).doubleValue());
        //scale爲保留2位小數,BigDecimal.ROUND_HALF_UP 表明四捨五入  結果:2.89

Map存取類型轉換錯誤

HashMap<String, Object> map = new HashMap<>();
        map.put("num",123);
        map.put("str","123");
        System.out.println(map.get("num"));             //123
        System.out.println(map.get("str"));             //123
        System.out.println((int) map.get("num"));       //123
        System.out.println(map.get("str111"));          //null
        System.out.println((String) map.get("num"));    //java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
        System.out.println((int) map.get("str"));       //java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer

輸出數組[]內容

String [] str ={"天空之城","港島妹妹","李志"};
        System.out.println(str.toString());             //[Ljava.lang.String;@6bdf28bb
        System.out.println(Arrays.toString(str));       //[天空之城, 港島妹妹, 李志]  每一個逗號後面都有個空格(%20) !!!坑!!!

        String s="";
        for (String i : str) {
            s += i+",";
        }
        System.out.println(s);                          //天空之城,港島妹妹,李志,
        System.out.println(s.substring(0,s.length()-1));//天空之城,港島妹妹,李志

日期+隨機數生成惟一標識

String str =  new SimpleDateFormat("yyyyMMddhhmmssSSS").format(new Date());
int rannum = (int) (new Random().nextDouble() * (90000)) + 10000;// 獲取5位隨機數
return str+rannum;
SimpleDateFormat ss = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");//12小時制  
SimpleDateFormat sdformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//24小時制

隨機數

1.Random random = new Random();
    int i = random.nextInt(100); //範圍[0,100)
    界限必須爲正數 (不能夠爲0或者負數),不然會報java.lang.IllegalArgumentException: bound must be positive  
2.Math.random()
    返回的數值是[0.0,1.0)的double型數值
    int max=100,min=1;
    int ran2 = (int) (Math.random()*(max-min)+min);

浮點型數值保留位數

double amount1 = Double.valueOf("1.234");
        System.out.println(amount1);            //1.234
        
        HashMap<String, Object> map = new HashMap<>();
        map.put("num",1.234);        
        double amount2 = ((Number)map.get("num")).doubleValue();
        System.out.println(amount2);            //1.234

        //整型轉換爲double保留一位小數 xx.0
        //BigDecimal 的小數類型 轉double後值相同
        //DecimalFormat df = new DecimalFormat("0.00");
        // #與0的區別:
        //#:沒有則爲空
        //0:沒有則補0
        DecimalFormat df = new DecimalFormat("0.00");
        BigDecimal amount5=new BigDecimal(df.format(amount1));
        System.out.println(amount5);            //1.23
相關文章
相關標籤/搜索