android(java.、C)编程中的那些技巧

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



你可能感兴趣的:(java,android,编程小技巧)