Demo18_基本类型包装类

package test09;

import java.util.Arrays;

public class Demo18_基本类型包装类 {

    private static final String SPACE = " ";

    public static void main(String[] args) {
        /*场景 
         * 通过文本框获取用户输入的数字数据,可是得到的都是字符串
         * 如果想要对字符串中的数字进行运算,必须将字符串转成数字
         * Java中提供了相应的解决对象
         * 基本数据类型对象包装类:Java中将基本数据类型值封装成了对象
         * 
         * 封装成对象有什么好处呢?
         * 可以提供更多的基本操作数值的功能
         * 
         * 基本数据类型       基本数据类型对象包装类
         * byte          Byte
         * short         short
         * int           Integer
         * long          Long
         * float         Float
         * double        Double
         * boolean       Boolean
         * char          Character
         *  */
//int      学习     Integer用法
        System.out.println(Integer.MAX_VALUE);
        System.out.println(Integer.MIN_VALUE);
//      十进制转换成二进制
        System.out.println(Integer.toBinaryString(10));//将一个数转换进制之后是一个字符串类型(参照10-->16的转换)
//      十进制转成16进制
        System.out.println(Integer.toHexString(10));
//      十进制转成八进制
        System.out.println(Integer.toOctalString(10));
        /*  基本数据类型对象包装类特点
     *  1.用于实现基本数据类型与字符串之间的转换
     *   */
        System.out.println("-------字符串转成基本数值--------");
//      1.1字符串转成基本数值   只演示Integer  基本数据类型   parse+首字母大写的基本上数据类型(string)   character不需要解析
        System.out.println("123"+2);
        System.out.println(Integer.parseInt("123")+2);//将“123”转换成123
//      可以将其他进制转化成十进制
        System.out.println(Integer.parseInt("110", 2));//2代表指定的进制,前面的字符串必须符合你指定的进制
        System.out.println("-------基本数值转成字符串--------");
        System.out.println(123+2);
        System.out.println(String.valueOf(123)+2);
        System.out.println(Integer.toString(123)+2);
        System.out.println("-------基本数值转成包装对象--------");
        Integer i1 = new Integer(4);
        Integer i2 = new Integer("4");
        Integer i3 = Integer.valueOf("4");
        System.out.println(i1);
        System.out.println(i2);
        System.out.println(i3);
        System.out.println("-------包装对象转成基本数值--------");
        int num = i1.intValue();
        System.out.println("num="+num);
        System.out.println("-------自动装箱和拆箱--------");
//      在JDK1.5之后,有了一个包装类的新特性  简化书写   自动装箱
        Integer i = 4 ;//自动装箱  Integer i3 =  Integer.valueOf("4");
//      i和4都是对象
        i = i + 5;//将i对象装成基本数值  自动拆箱  运算完成之后 自动装箱
        System.out.println("i="+i);
        System.out.println("-------自动装箱和拆箱细节--------");
        Integer a = new Integer(4);
        Integer b = new Integer(4);
        System.out.println(a==b);
        System.out.println(a.equals(b));
        Integer c =12;
        Integer d =12;
//      在JDK1.5中自动装箱时,为了节省空间如果数值在byte(-128----+127)范围内,不会新创建空间而是使用原有的空间
        System.out.println(c==d);
        System.out.println(c.equals(d));
        System.out.println("-------面试题--------");
//      23 9 -4 18 100 7  从小到大排列,生成一个数值有序的字符串
        /*思路
         * 1.排序  需要数组,数组需要元素
         * 2.元素在字符串中,需要创建string对象来获取字符串中的数字
         * 3.将字符串中获取的数组存储到一个int数组中,因为要排序
         * 4.将排完的数组变成字符串
         * 2.
         *   */
        String nums ="23 9 -4 18 100 7 ";
        nums = sortNumberString(nums);
        System.out.println("nums = "+nums);
    }

    public static String sortNumberString(String numsString) {
//获取字符串中的数字。怎么获取? 通过空格进行Indexof的索引,找到其位置,subString截取,

        String[] strs = numsString.split(SPACE);//得到字符串  字符串比较与int比较不同   其中space是创建一个常量
        //字符串数组转成int数组
        int[] nums  = parseIntArray(strs);
//      对数组排序
        Arrays.sort(nums);
//      将数组转成字符串

        return toString(nums);
    }
//  将数组转成字符串
    private static String toString(int[] nums) {
        StringBuilder sb = new StringBuilder();
        //遍历数组
        for(int i=0 ; i < nums.length ; i++){
            if(i!=nums.length -1 ){
                sb.append(nums[i]+" ");}
                else{
                    sb.append(nums[i]);

            }
        }
        return sb.toString();
    }

    //字符串数组转成int数组
    private static int[] parseIntArray(String[] strs) {
        // TODO Auto-generated method stub
//      定义int数组
        int[] arr = new int[strs.length];
//      遍历数组
        for (int i = 0; i < arr.length; i++) {
            arr[i] = Integer.parseInt(strs[i]);
        }

        return arr;
    }

}

猜你喜欢

转载自blog.csdn.net/mingxu_W/article/details/81912229