java类型转换

 

                       

数值类型与包装数值类型:

1.  数值类型转换包装类型:

例:new

int a = 100;

Integer n =new Integer(a);

 

包装类.valuOf()

int a = 100;

Integer a = Integer.valueOf(a);

 

2.  包装类型转数值类型:

例:对象.XXValue();   XX:基本类型

    Integer a = new Integer(100);

    int b = a.intValue(); //b =100

 

拆箱与装箱:

自动装箱:基本类型可以自动转成包装类型

自动拆箱:包装类型可以自动转成基本类型

 

引用类型:

java.lang.String

1.  数值类型转String:

例:

int a = 9;

String b = a+"";"a"

 

int a = 9;

String b = String.valueOf(a);

 

2.  String转数值类型:

概念:数值必须类似

例:

String s = "123";  //整数字符串

       int a = Integer.parseInt(s);

 

String s1 ="12.3";

       double a = Double.parseDouble(s1);

 

        String s = "abc";

       int a = Integer.parseInt(s);错误   

      

 

 

String转char[] 或byte[]

特征:

·字符数组:1个汉字1个字符 1个空格是1个字符

·字节数组:1个汉字是2个字节 1个空格是1个字节

 

例1:

String s = "java有 时候没有想象的那么牛B123";

       char[] crr = s.toCharArray();

       System.out.println(crr.length);

       for (int i = 0; i < crr.length; i++) {

           System.out.print(crr[i]+" ");

       }

char[]->String

       String s1 =new String(crr);

       System.out.println(s1);

       s1 = String.valueOf(crr);

       System.out.println(s1);

      

       System.out.println();

 

例2:

String s3 = "OmG你们 真坏123";

       byte[] brr = s3.getBytes();

       System.out.println(brr.length);

      

Byte[]->String

       String s4 =new String(brr);

       System.out.println(s4);

 

3.String其他用法;

indexOf();

       lastIndexOf();

       trim();去掉首尾空格

       concat()追加

       length()

       equals();

       equalsIgnoreCase();不区分大小写判断相等

       contains();//判断指定字符是否在字符串中

       charAt();输出指定下标的字符

       startsWith()

       endsWith();

       split();  分割

       subString(int index)

       subString(int start,int end);从start下标开始

       取end-start个字符

 

       String s6 = "你刚刚刚刚放了一个屁";

       System.out.println(s6.lastIndexOf("刚刚"));  

 

 

Java.lang.StringBuffer:可变字符串 增强字符串

StringBuffer sb =new StringBuffer("java其实不难");

       //1.增

       sb.append("你觉得可能吗?");

       sb.insert(0, "html和");

      

       //2.删

       //sb.delete(4, 9);

       //sb.deleteCharAt(4);

 

       //3.改

       sb.replace(5, 9, "c#");

       sb.setCharAt(4, '与');

 

       //4.查

       System.out.println(sb);

       System.out.println(sb.toString());

       //StringBuffer-->String

       String string = sb.toString();

       //String---->StringBuffer

       StringBuffer sb1= new StringBuffer(string);

      

 

String与StringBuffer添加数据的区别:

1.String :字符串的方法不能改变本身的值

  StringBuffer:方法能改变本身的值

3.  StringBuffer比String添加数据效率要高

 

 

编码:一个字符在内存中按几个字节存储

国标码:   gbk编码:        一个中文对应2个字节

国际编码: iso-8859-1编码:一个中文对应1个字节 不能正确表示中文

通用:     utf-8编码:      一个中文对应3个字节

 

案例1:

public static void main(String[] args) throws UnsupportedEncodingException {

       String s = "中国你好";

      

       byte[] brr = s.getBytes();//gbk;

       System.out.println(brr.length);

      

       //iso-8859-1:国际编码

       brr = s.getBytes("iso-8859-1");

       System.out.println(brr.length);

      

       //utf-8:

       brr  = s.getBytes("utf-8");

       System.out.println(brr.length);

 

    }

 

案例2:利用编码计算汉字个数

public static void main(String[] args)  {

       String s = "123中国你好abc";

       //gbk:一个汉字2个字节

       byte[] brr = s.getBytes();

       System.out.println(brr.length);

      

       //iso-8859-1:一个汉字1个字节

       try {

           brr = s.getBytes("iso-8859-1");

       } catch (UnsupportedEncodingException e) {

           // TODO Auto-generated catch block

           e.printStackTrace();

       }

       System.out.println(brr.length);

    }

 

 

4.  java.lang.Object:

1)hashCode();:返回对象在内存中地址的整数形式

              hashcode码:内存中地址的整数形式

   特征:

   计算机每次new出来的对象的(地址)hashcode码一定不相等。

 

   内涵:

   比较我们自己定义的类的对象相等的时候,必须重写hashCode方法和equals方法。计算机定义好的类不需要我们自己重写hashCode方法和equals方法。

   判断特征:先执行hashcode方法然后触发equals方法

 

 

2)toString():

    每个了都有一个toString 方法:这个方法是从Object

    类中继承过来的:类名@hashcode码的十六进制形式

 

案例1:

public class Student extends Object{

   String name;

   int age;

  

   public Student(String name,int age){

    this.name = name;

    this.age = age;

   }

 

   @Override

   public int hashCode() {

    // TODO Auto-generated method stub

    return 100;

   }

 

   @Override

   public boolean equals(Object obj) {

    //判断obj真实对象是Student才有比较的可能

    if(obj instanceof Student){

       Student s = (Student)obj;

       if(s.name.equals(this.name)&&s.age==this.age){

           return true;

       }else{

           return false;

       }

      

    }else{//obj真实对象不是Student

       return false;

    }

   }

 

   @Override

   public String toString() {

    // TODO Auto-generated method stub

    return name+"\t"+age;

   }

  

  

  

}

 

public static void main(String[] args) {

    Student  s =new Student("小强", 18);

    System.out.println(s.hashCode());

    Student s1 = new Student("小强", 18);

    System.out.println(s);//自动调用toString

   

   

    System.out.println(s1.hashCode());

   

    System.out.println(s==s1);//比较的是地址:肯定不相等

    System.out.println(s.equals(s1));

   

   

   

    String str = new String("abc");

    String str1 = new String("abc");

    System.out.println(str==str1);

    System.out.println(str.equals(str1));

   

    Integer t1 =new Integer(4);

    Integer t2 = new Integer(4);

    System.out.println(t1==t2);

    System.out.println(t1.equals(t2));

          

   

 

   }

 

 

5.  java.lang.Math:

static abs()返回double值得绝对值

       int a = -10;

       Math.abs(a);  //10

    static ceil(小数):天花板    返回>=小数的最小整数

       double a = 9.1;

       Math.ceil(a);//10

      

    static floor(小数):地板     返回<=小数的最大整数

       double a = 9.9;  

       Math.floor(a); //9

      

    static random();   返回[0  1)之间的随机数

    double a = Math.random();

 

    static round(小数):四舍五入

 

6.  java.lang.Date:

//取当前时间

    Date date =new Date();

   

    System.out.println(date.toString());

    System.out.println(date.toLocaleString());//过时

    System.out.println(date.toGMTString());

   

java.text.SimpleDateFormat;

    String string = "2013-9-27";

    //日期的转换类

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

   

    //字符串日期转成date日期

    Date dates = sdf.parse(string);

    System.out.println(dates.toLocaleString());

   

   

    //date日期转成字符串日期

    String string2 = sdf.format(dates);

    System.out.println(string2);

 

public static void main(String[] args) throws ParseException {

       //取当前时间

       Date date =new Date();

      

       System.out.println(date.toString());

       System.out.println(date.toLocaleString());//过时

       System.out.println(date.toGMTString());

      

       System.out.println("--------------");

       String string = "2013-9-27";

       //日期的转换类

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

      

       //字符串日期转成date日期

       Date dates = sdf.parse(string);

       System.out.println(dates.toLocaleString());

      

      

       //date日期转成字符串日期

       String string2 = sdf.format(dates);

       System.out.println(string2);

    }

 

java.text.SimpleDateFormat;

    String日期-------date日期

    format(Date date):String  把字符串日期转成Date日期

    parse(String str):Date     把Date日期转成字符串日期

​​​​​​​

posted @ 2017-06-19 17:20  会说话的帆船  阅读(172)  评论(0编辑  收藏  举报