zoukankan      html  css  js  c++  java
  • 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+" "+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日期转成字符串日期

    ​​​​​​​

  • 相关阅读:
    SQL Server 文件规划 位置规划
    在VS2008中使用WSE 3.0过程全记录
    关于CDC功能的答疑
    SQL Server 2008 : 基于策略的管理(PolicyBased Management)
    使用 Google Gears 开发离线应用
    SQL Server 2008 :安装
    WCF 之UserName身份验证全记录
    SQL Server 文件规划 文件组
    不可思议的SQLite
    使用Trigger让UpdatePanel外部的控件也支持无刷新异步调用
  • 原文地址:https://www.cnblogs.com/monion/p/7049662.html
Copyright © 2011-2022 走看看