Java常用方法总结(持续更新中)

1.开发中经常会遇到整数相除的情况,如果你想要得到一个带两位小数的值,可以使用一下方法

DecimalFormat df = new DecimalFormat("#.00");
System.out.println(df.format(f));

例如(double)4/7 结果为 0.57,假如你想得到类似于57.14%的情况可以稍微改一下上面的代码如下

 DecimalFormat df = new DecimalFormat("#.00%");
 System.out.println(df.format(f));

 2.字符串和时间格式的转换

  如果你想将一个字符串转换成Date类型,很简单,只需要两行代码就可以搞定

SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd");

Date date=sf.parse("2012-7-15");

System.out.println(date);

 那假如我想把一个时间格式转换成想要的字符串形式呢,同样很简单代码如下:

SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String date1=sf.format(new Date());
System.out.println(date);

结果就会输出 2012-02-14 04:01:23

3.开发中有时候因为用户的输入会遇到将全角字符串,如果对全角字符串直接操作我们会遇到问题,所以需要将其转成半角字符串的情况,下面的代码提供了一个解决方法

         //任意字符串
	//半角字符串
	//全角空格为12288,半角空格为32
	//其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248
       public static String ToDBC(String input) {
	     char[] c = input.toCharArray();
	     for (int i = 0; i < c.length; i++) {
		if (c[i] == 12288) {
		  c[i] = (char) 32;
		  continue;
		}
		if (c[i] > 65280 && c[i] < 65375)
		  c[i] = (char) (c[i] - 65248);
		}
	        return new String(c);
	}

4. 将byte数组转换成对应的十六进制的字符串形式

byte[] buffer ={ -123, -8, 12, 45, 56 };
StringBuffer sb = new StringBuffer();
String s = null;
for (int i = 0; i < buffer.length; i++)
   {
      s = Integer.toHexString(buffer[i] & 0xff);
      System.out.println(s);
      if (s.length() < 2){
	     sb.append('0');
	  }
	   sb.append(s);
    }

  

java中负数是用补码表示的,非负数用原码表示

byte类型的数字是是用八位一个字节来表示

下面我们拿-123来举例

补码=绝对值的原码的反码+1

-123的绝对值是123,其原码是:

01111011

其反码是:

10000100

再加1得

10000101

byte(8位)类型的数字,它的高24位里面都是随机数字,低8位才是实际的数据。java.lang.Integer.toHexString() 方法的参数是int(32位)类型,如果输入一个byte(8位)类型的数字,这个方法会把这个数字的高24为也看作有效位,这就必然导致错误,使用& 0XFF操作,可以把高24位置0以避免这样错误的发生。

01011100101011001101010110000101

&00000000000000000000000011111111

----------------

-=0000000000000000000000010000101

这样的话就转成了正数了,16进制为85

5.Java 拼接字符串时,去掉最后一个多余的逗号

比如:"str1,str2,str3,",要去除str3后的逗号,可用如下方法:

String str="str1,str2,str3,";
System.out.println(str.substring(0,str.length()-1));

或者

String str="str1,str2,str3,";
System.out.println(str.substring(0,str.lastIndexOf(",")));

  

  

 

 

posted @ 2013-03-13 15:17  十年半山  阅读(729)  评论(0编辑  收藏  举报