1、%和/的差異
%是求模運算符,/是除運算符,%是求餘數,而/是求整數部分 ,
如:65/60=1;65%60=5;300/60=5;300%60=0
2、善用%2d、%d、\t 等符號
System.out.println(String.format("%2d\t%d:%d:%d:%d",1, 1,11,1,1));
System.out.println(String.format("%2d\t%2d:%2d:%2d:%2d",11, 11,11,11,11));
System.out.println(String.format("%2d\t%2d:%2d:%2d:%2d",1, 1,1,1,1));
%d按照十進制整數的形式輸出,%2d是至少輸出佔有兩個字符的十進制整數,能方便排列數字,而\t佔8個字 符,即
水平字符表佔8列,一般用於顯示時間不讓他錯位
3、文件路徑中的/儘量用File.separator代替,
如將/mnt/sdcard/test.txt寫成 File.separator+"mnt"+File.separator+"sdcard"+File.separator+"test.txt"
File.separator請參考http://it-like.iteye.com/blog/1491467
4.SimpleDateFormat(String template, Locale locale) 的巧用
SimpleDateFormat dataFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
eclipse報警告:
爲了讓本地格式使用getDateInstance(),getDateTimeInstance(),或getTimeInstance(),或使用新的
SimpleDateFormat(String template, Locale locale) 例如Locale.US的ASCII日期。
看API:
對於指定的語言環境使用指定的非本地化的模式和DateFormatSymbols和 Calendar(日曆)構造一個新的格式
簡單的說就是避免時區問題:但我們沒有指定Locale時,可能顯示的時間比當前的時間少了八個小時,或是多了八個小時
修改方法一:直接指定Locale
SimpleDateFormat dataFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss",Locale.CHINA);
修改方法二:通過改變默認的時區
TimeZone.setDefault(TimeZone.getTimeZone("GMT+8:00"));
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(sdf.format(Calendar.getInstance()));
5、用%s替代字符
String URL = "account=%s&password=%s&permission=%s";
String account = "admin";
String password = "admin";
int permission = 1;
String url = String.format(URL, account, password, permission);
System.out.println(url);
結果:account=admin&password=admin&permission=1