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