457-JavaSE进阶NumberFormatException异常

package com.bjpowernode.javase1.integer1;

public class IntegerTest07 {
    public static void main(String[] args) {


        // 手动装箱
        Integer integer = new Integer(1000);

        //手动装箱
        int qwe = integer.intValue();
        System.out.println(qwe);

        Integer integer1 = new Integer("123");
        /* (NumberFormatException.java:65)
         * NumberFormatException 数字格式异常 */
        System.out.println(integer1);

        // 编译的时候没问题,一切符合java语法,运行时会不会出问题呢?
        // 不是一个“数字”可以包装成Integer吗?不能。运行时出现异常。
        // java.lang.NumberFormatException
        //Integer a = new Integer("中文");

        // 重点方法
        // static int parseInt(String s)
        // 静态方法,传参String,返回int
        //网页上文本框中输入的100实际上是"100"字符串。后台数据库中要求存储100数字,此时java程序需要将"100"转换成100数字。

        /*这个重点方法常用的原因:
        * 在网页上输入的是字符串,数据后台保存的是数字,需要java进行转换,
        * 把字符串转化为数字(基本数据类型),才能保存到数据库中*/
        int a1 = Integer.parseInt("123");
        /*parseInt 这个方法就是对字符串进行处理的*/

        /* String --> int
         *  包装类 --> 基本数据类型
         *  String 不是基本类型 */
        System.out.println(a1 + 100);
        /*进行加减运算,那么这个 a1 有没有 new 一个新的,产生了几个对象?
        * 答:a1是string转换为int ,不涉及到 对象
        * 基本数据类型可以进行加减,string和包装类这种需要转换为基本数据类型进行加减  */

        // 包装类.parseInt  照葫芦画瓢 ,做一个double
        double a2 = Double.parseDouble("3.1415926");
        /* String --> double */
        System.out.println(a2);
        /*这个照葫芦画瓢,我这边是局限于Integer,还有Double,Float等
         * 都可以调用这些方法*/

        /*为什么要解析这种,直接自动拆箱会快很多?
         *   //因为 直接自动装拆箱是不带String的,需要基本类型和包装类对应进行
         * .parseInt(基本数据类型可以变换)(包装类的方法) 就是专门转String的
         * */

        double a3 = Double.valueOf(3.1415926);
        /*手动拆箱*/
        System.out.println(a3);

        System.out.println("===========");
        Double x = 3.1415926;
        /*自动装箱*/
        double y = x;
        /*自动拆箱*/
        System.out.println(y);

        System.out.println("===========");
        // 照葫芦画瓢 ,Double,Float
        double a4 = Double.parseDouble("3.1415926");
        System.out.println(a4 + 1);
        /* 这种也叫做拆箱,转换成基本数据类型就可以进行加减乘除*/

        System.out.println("===========");
        float a5 = Float.parseFloat("1.0");
        System.out.println(a5 + 123);
        System.out.println("===========");

        // -----------------------------------以下内容作为了解,不需要掌握---------------------------------------
        // static String toBinaryString(int i)
        // 静态的:将十进制转换成二进制字符串

        String a6 = Integer.toBinaryString(3);
        System.out.println(a6);  //"11" 二进制字符串

        // static String toHexString(int i)
        // 静态的:将十进制转换成十六进制字符串
        String a7 = Integer.toHexString(16);
        System.out.println(a7);  //10

// 十六进制:1 2 3 4 5 6 7 8 9 a b c d e f 10 11 12 13 14 15 16 17 18 19 1a
        a7 = Integer.toHexString(17);
        System.out.println(a7);  //11

        //static String toOctalString(int i)
        // 静态的:将十进制转换成八进制字符串
        String a8 = Integer.toOctalString(8);
        System.out.println(a8);  //10

        System.out.println(new Object()); //java.lang.Object@1b6d3586  //哈希码
        /*
        *
        *public String toString() {
          getClass().getName() + "@" + Integer.toHexString(hashCode());
         }
       * 
       *
       * */

        String q1 = "abc";
        String q2 = q1.toUpperCase();
        System.out.println(q2);
        System.out.println("=======");
        String s = new String("abc");
        String s1 = s.toUpperCase();
        System.out.println(s1);


    }
}

输出:

1000
123
223
3.1415926
3.1415926
===========
3.1415926
===========
4.1415926
===========
124.0
===========
11
10
11
10
java.lang.Object@1b6d3586
ABC
=======
ABC

进程已结束,退出代码 0
posted @ 2020-11-11 15:47  nkndlawn  阅读(87)  评论(0编辑  收藏  举报