Java ------- 数字转换为 字符串

学习相同的内容每次看都有新的发现,本文主要介绍java  中的转换,但是好多的方法在不同的语言中是通用的

不知道大家有没有深入的学习过Java 的源码,或看看Java的 API 帮助手册

先解决问题,double类型的数字如何转换为 String类型

三种方式:第一种用的比较多

  //第一种方式通过ToString() 方法, Double 就是一个包装类

  String s1 = Double.toString(dou1);

  //第二种方式是通过valueof() 方法, 本质上还是调用 toString() 方法

  String s2 = String.valueOf(dou1);

  //第三种没有借助包装类
  String s3 =""+dou1;

运行代码:获取 类型的的方法是自己写的不是Java源码中自带的

 

 所有代码:

package com.obge.contr;

public class ChangeNtoS {
    
    public static void main(String[] args) {
        //定义一个变量并赋值,,变量和常量:一个可以变化,一个不能变换,使用final定义的就不能变换
        double dou1 = 3.222;
        int i1= 22;
        float f1= 2.1f;
        byte b1 =1;
        long l1 =1;
        short st1 =22;
        // 将double 类型转换为String  类型    知道 包装类和 基本数据类型,Java 5 增加了自动装箱、拆箱机制,
        //第一种方式通过ToString() 方法, Double 就是一个包装类
        String s1 = Double.toString(dou1);
        String sf1 = Float.toString(f1);
        String si1 = Integer.toString(i1);
        
        String sb1 = Byte.toString(b1);
        String sl1 = Long.toString(l1);
        String sst1 = Short.toString(st1);
        //第二种方式是通过valueof()  方法, 本质上还是调用 toString() 方法
        String s2 = String.valueOf(dou1);
        //第三种没有借助包装类
        String s3 =""+dou1;
        
        System.out.println("转换前:");
        System.out.println(dou1+"的类型是:"+getType(dou1));
        System.out.println("转换后:");
        System.out.println(s1+"的类型是:"+getType(s1));
        System.out.println(s2+"的类型是:"+getType(s2));
        System.out.println(s3+"的类型是:"+getType(s3));
        System.out.println(i1+"转换前的类型是:"+getType(i1)+"转换后的类型是:"+getType(si1));
    }

    
    //获取变量类型方法
        public static String getType(Object o){ 
            //调用该方法返回变量类型   getClass()方法
            return o.getClass().toString();
            
            }         

}

2、观看源码,看看调用的事什么方法

按住ctrl 键 点击toString 进入方法中,可以直接点击去

 

 declaration 宣告说明       implementation 实现

可以看到,toString  是Double 类的方法,他是一个静态方法,更深处的代码就需要引用jdk 的源码了先了解了解

点击     valueof 中可以看出 这个是String类的方法,本质上还是调用 Double    类的 toString    方法 

Integer  的toString 方法略有不同,进行了判断

byte  借助integer

 可以自己试试 :

 float 和double 差不多 ,long和int 差不多,byte 和short 类型差不多借助integer

这个图挺好 

原文地址:https://www.cnblogs.com/obge/p/12161549.html