zoukankan      html  css  js  c++  java
  • Java int与String互相转化大全

    int -> String

    
    

    //int 转化才 string
    int num = 123456;

    //方法一 会产生两个String对象
    String s1 = num+"";

    //方法二 直接使用String类的静态方法,只产生一个对象
    String s2 = String.valueOf(num);

    //方法三
    String s3 = Integer.toString(num);
    //Integer.toString(int par1,int par2),par1表示要转成字符串的数字,par2表示要转成的进制表示

    /*方法二和方法三
    * toString方法就是把int类型的value值转化为string类型输出
    * valueOf()是String的静态方法,参数值可以为int,long,double,float,对象,char,char数组,boolean
    * */


    //String转化成int
    String string = "123456";

    //方法一
    int i1 = Integer.parseInt(string);

    //方法二
    int i2 = Integer.valueOf(string);

    //方法三
    int i3 = new Integer(string);



    /*从下面的源码中可以看出,Integer.valueOf("")和Integer.parseInt("")内部实现是一样的,
    * 它们之间唯一的区别就是Integer.valueOf(“”)返回的是一个Integer对象,而Integer.parseInt(“”)返回的是一个基本类型的int。
    *
    * 而Integer.valueOf("")和new Integer(""),
    * 它们同样返回的是一个Integer对象,但它们又有什么区别呢?
    *
    * Integer.valueOf("")会用到IntegerCache对象,当IntegerCache中存在时就从cache中取,
    * 不存在时才会调用new Integer(i)构造函数返回一个Integer对象。
    * 所以Integer.valueOf("")会用到cache,其效率可能会比用构造函数new Integer(i)高。
    *
    * 关于IntegerCache,在-127~128之间的值都会被cache,所以当我们要的值位于这个区间时返回的都是同一个实例
    *
    * 当我们需要的是一个基本类型* int *的时候我们需要使用Integer.parseInt()函数
    当我们需要的是一个Integer对象类的时候我们就是用Integer.valueOf()函数
    * */

    
    

    JDK源码

    //Integer.parseInt("")
    public static int parseInt(String s) throws NumberFormatException {
      return parseInt(s,10);
    }
    //Integer.valueOf("")
    public static Integer valueOf(String s) throws NumberFormatException {
      return Integer.valueOf(parseInt(s, 10));
    }
    //new Integer("")
    public Integer(String s) throws NumberFormatException {
      this.value = parseInt(s, 10);
    }
  • 相关阅读:
    [android] 实现返回键操作思路
    [android] 切换界面的问题
    [android] 切换界面的通用处理
    [android] 界面切换的简单动画
    [android] 界面切换的核心方法
    [android] 标题部分管理
    [android] 界面的划分
    [android] socket在手机上的应用
    [android] 网络链接类型和渠道
    [android] android通信协议
  • 原文地址:https://www.cnblogs.com/lwx521/p/8182649.html
Copyright © 2011-2022 走看看