java基础-Integer类常用方法介绍

                                  作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

  在实际程序使用中,程序界面上用户输入的数据都是以字符串类型进行存储的。而程序开发中,我们需要把字符串数据根据需求转换成指定的基本数据类型,如年龄需要转换成int类型,考试成绩需要转换成double类型等。那么,想实现字符串与基本数据之间转换应该怎么办呢?接下来我们就一起学习一下Java的包装类吧。

一.基本类型包装类概述

 Java中提供了相应的对象来解决该问题,基本数据类型对象包装类:java将基础数据类型值封装成了对象。封装成对象有什么好处?当然是可以提供更多的操作基本数值的功能啦~

  其中需要注意int对应的是Integer,char对应的Character,其它6个都是基本类型首字母大写即可。基本数据类型的特点是用于在基本数据和字符串之间进行转换。我们主要研究的类就是其中一个,即Integer,因为其它的类的方法跟它几乎一致。要学会举一反三哟~

二.Integer类常用方法

1>.ParseInt(String s)方法(将基本类型转换成字符串。)

a>.用于将字符串转换成基本数据类型(int),要求字符串必须是数字格式。

 /*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
EMAIL:y1053419035@qq.com
*/ package cn.org.yinzhengjie.demo; public class ArrayListDemo {
public static void main(String[] args) {
String year = "2018";
int i = Integer.parseInt(year);
System.out.println(i/2);
}
} /*
以上代码执行结果如下:
1009
*/

b>.parseInt(String s,int radix)方法

  将字符串s按照radix进行转换相应的进制数,然后运行的结果都是以十进制的形式打印。

 /*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
EMAIL:y1053419035@qq.com
*/ package cn.org.yinzhengjie.demo; public class ArrayListDemo {
public static void main(String[] args) {
String year = "1110";
String age = "A";
//指定year的进制为2进制
int i = Integer.parseInt(year,2);
//指定age的进制为16进制
int i2 = Integer.parseInt(age,16);
System.out.println(i);
System.out.println(i2);
}
} /*
以上代码执行结果如下:
14
10
*/

2>.基本数据类型int转换成字符串

a>.任何类型+"" 变成String类型(推荐使用)

 /*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
EMAIL:y1053419035@qq.com
*/ package cn.org.yinzhengjie.demo; public class Demo1 {
public static void main(String[] args) {
int src = 3;
String dest = src + "";
System.out.println(dest+1);
}
} /*
31
*/

b>.Integer类中的静态方法toString()转换成字符串

 /*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
EMAIL:y1053419035@qq.com
*/ package cn.org.yinzhengjie.demo; public class Demo1 {
public static void main(String[] args) {
int src = 50;
String dest = Integer.toString(src);
System.out.println(dest+1);
}
} /*
501
*/

c>.toString(int ,int 进制),将int整数转成指定的进制数

 /*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
EMAIL:y1053419035@qq.com
*/ package cn.org.yinzhengjie.demo; public class Demo1 {
public static void main(String[] args) {
int src = 32;
//将int整数转换成指定的进制数
String dest = Integer.toString(src,2);
System.out.println(dest);
}
} /*
100000
*/

3>.Integer的两个静态成员变量

 /*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
EMAIL:y1053419035@qq.com
*/ package cn.org.yinzhengjie.demo; public class Demo1 {
public static void main(String[] args) {
int max = Integer.MAX_VALUE;
int min = Integer.MIN_VALUE;
System.out.println("int最大值是:"+max);
System.out.println("int最小值是:"+min); //根据上面的估计你就会做出举一反三的动作,如下:
System.out.println("Long最大值是:"+Long.MAX_VALUE);
System.out.println("Long最小值是:"+Long.MIN_VALUE);
System.out.println("Double最大值是:"+Double.MAX_VALUE);
System.out.println("Double最小值是:"+Double.MIN_VALUE);
}
} /*
以上代码执行结果如下:
int最大值是:2147483647
int最小值是:-2147483648
Long最大值是:9223372036854775807
Long最小值是:-9223372036854775808
Double最大值是:1.7976931348623157E308
Double最小值是:4.9E-324
*/

4>.十进制转成不同的进制,三个静态方法的返回值都是以字符串的形式返回

 /*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
EMAIL:y1053419035@qq.com
*/ package cn.org.yinzhengjie.demo; public class Demo1 {
public static void main(String[] args) {
int src = 1000;
String Binary = Integer.toBinaryString(src);
String OctalNumberSystem = Integer.toOctalString(src);
String Hexadecimal = Integer.toHexString(src);
System.out.printf("%d的二进制是:%s,八进制是:%s,十六进制是:%s\n",src,Binary,OctalNumberSystem,Hexadecimal);
}
} /*
以上代码执行结果如下:
int最大值是:2147483647
int最小值是:-2147483648
Long最大值是:9223372036854775807
Long最小值是:-9223372036854775808
Double最大值是:1.7976931348623157E308
Double最小值是:4.9E-324
*/

三.Interger类构造方法

  常用的构造方法Integer(String s)是将数字格式的字符串,传递到Integer类的构造方法中,创建Integer对象,包装的是一个字符串。将构造方法中的字符串转成基本数据类型,调用非静态方法。

 /*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
EMAIL:y1053419035@qq.com
*/ package cn.org.yinzhengjie.demo; public class Demo1 {
public static void main(String[] args) {
String s1 = new String("1000");
Integer src = new Integer(s1);
int dest = src.intValue();
System.out.println(dest--);
System.out.println(--dest);
}
} /*
1000
998
*/

四.自动装箱和自动拆箱

  从JDK1.5后出现的特性,即自动拆箱和自动装箱。自动装箱就是将基本数据类型直接变成Integer包装类。自动拆箱和装箱动作相反,即将对象中的数据变回基本数据类型。自动拆箱和装箱的好处就是基本类型和引用类型可以直接运算,代码如下:

 /*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
EMAIL:y1053419035@qq.com
*/ package cn.org.yinzhengjie.demo; public class Demo1 {
public static void main(String[] args) {
Integer src = 100; //这里就是自动装箱的过程,相当于Integer src = new Integer(100); int dest = src + 5; //我们知道src本身是引用数据类型,不能直接跟基本数据类型运算,首先它会自动进行拆箱操作,相当于:int dest = src.intValue() + 5 ;
System.out.println(dest); }
} /*
以上代码执行结果如下:
105
*/

  当然,一个事物都具有两面性,虽然说自动拆箱和自动装箱可以减少代码的书写量,还可以直接跟引用数据类型进行运算,但是它也存在一个弊端,即可能出现空指针异常。

 /*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
EMAIL:y1053419035@qq.com
*/ package cn.org.yinzhengjie.demo; public class Demo1 {
public static void main(String[] args) {
Integer src = null; //任何引用数据类型都可以指向空
src = src + 10;
System.out.println(src);
}
} /*
以上代码执行结果如下:
Exception in thread "main" java.lang.NullPointerException
at cn.org.yinzhengjie.demo.Demo1.main(Demo1.java:12)
*/

五.小试牛刀

 /*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
EMAIL:y1053419035@qq.com
*/ package cn.org.yinzhengjie.demo; public class Demo1 {
public static void main(String[] args) {
Integer i = new Integer(100);
Integer j = new Integer(100);
System.out.println(i==j); //false
System.out.println(i.equals(j)); //true
System.out.println("---------------"); Integer a = 500; //此时a进行了装箱操作
Integer b = 500; //此时b也进行了装箱操作,两个数值上是相等的,但是并不是同一个对象。
System.out.println(a == b); //false
System.out.println(a.equals(b)); //true
System.out.println("---------------"); //数据在byte范围内,JVM不会重新new对象。(可以查看源码)
Integer x = 127;
Integer y = 127;
System.out.println(x==y); //true
System.out.println(x.equals(y)); //true
System.out.println("---------------");
}
} /*
以上代码执行结果如下:
false
true
---------------
false
true
---------------
true
true
---------------
*/

java基础-Integer类常用方法介绍的更多相关文章

  1. java基础-Arrays类常用方法介绍

    java基础-Arrays类常用方法介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Array类的概念 此类包含用来操作数组(比如排序和搜索)的各种方法.需要注意,如果指定 ...

  2. Java基础-Calendar类常用方法介绍

    Java基础-Calendar类常用方法介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Calendar类概念 Calendar 类是一个抽象类,它为特定瞬间与一组诸如 Y ...

  3. java基础-BigDecimal类常用方法介绍

    java基础-BigDecimal类常用方法介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.BigDecimal类概述 我们知道浮点数的计算结果是未知的.原因是计算机二进制 ...

  4. java基础-BigInteger类常用方法介绍

    java基础-BigInteger类常用方法介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.BigInteger类概述 Java中long型为最大整数类型,对于超过long ...

  5. java基础-Math类常用方法介绍

    java基础-Math类常用方法介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Math类概念 Math 类包含用于执行基本数学运算的方法,如初等指数.对数.平方根和三角函 ...

  6. java基础-System类常用方法介绍

    java基础-System类常用方法介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.System类概念 在API中system类介绍的比较简单,我们给出定义,system中 ...

  7. Java基础-Date类常用方法介绍

    Java基础-Date类常用方法介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.毫秒值概念 我们在查阅Date类的API文档时,会发现这样的一句话:"The cl ...

  8. java基础-Eclipse开发工具介绍

    java基础-Eclipse开发工具介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 所谓工欲善其事必先利其器,即将身为一名Java开发工程师怎么能没有一款好使的IDE呢?今天就 ...

  9. java基础-Idea开发工具介绍

    java基础-Idea开发工具介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 之前给大家介绍过一款Java的IDE叫eclipse,有些功能用起来不是很得心应手,尤其是在导报的 ...

随机推荐

  1. 读书笔记 之java编程思想

    本阶段我正在读java的编程思想这本书,这本书只是刚读了第一章的一部分,有些有些要记得所以记录下来, 我认为要记得有就是复用这样可以对对象进行增强,将一个类作为下一个类中基本类型,这样达到的服用的目的 ...

  2. 使用Git进行代码管理心得------------个人练习

    一.在github.com上的操作   今天我们实践课程学习了用Git进行代码版本,使用github进行代码托管,我和队友在官网上创建了自己的Organization,将Auto CS fork到了小 ...

  3. 【CSAPP笔记】9. 汇编语言——缓冲区溢出

    x86-64 Linux 内存结构 先来看看一个程序在内存中是如何组织的.Linux 为每个进程维持了一段单独的虚拟地址空间.(进程是计算机科学中很深刻.很成功的一个概念.当我们在运行一个程序时,会得 ...

  4. 批量梯度下降(BGD)、随机梯度下降(SGD)以及小批量梯度下降(MBGD)的理解

      梯度下降法作为机器学习中较常使用的优化算法,其有着三种不同的形式:批量梯度下降(Batch Gradient Descent).随机梯度下降(Stochastic Gradient Descent ...

  5. 17_常用API_第17天(包装类、System、Math、Arrays、大数据运算)_讲义

    今日内容介绍 1.基本类型包装类 2.System类 3.Math类 4.Arrays类 5.大数据运算 01基本数据类型对象包装类概述 *A:基本数据类型对象包装类概述 *a.基本类型包装类的产生 ...

  6. NTP同步网络时间

    为什么要同步网络时间呢,这是由于树莓派没有RTC和后备电池,不能像PC机那样关机之后仍可以走时. NTP对时步骤: 1 安装ntpdate sudo apt-get install ntpdate s ...

  7. 深入理解JAVA集合系列一:HashMap源码解读

    初认HashMap 基于哈希表(即散列表)的Map接口的实现,此实现提供所有可选的映射操作,并允许使用null值和null键. HashMap继承于AbstractMap,实现了Map.Cloneab ...

  8. grunt入门讲解4:如何创建task(任务)

    每当运行Grunt时, 你可以为其指定一个或多个任务, 这些任务用于告诉Grunt你想要它做什么事情. 如果你没有指定一个任务,并且你已经定义一个名为 "default" 的任务, ...

  9. c# Parallel 并行运算 异步处理

    var list = new List<string> { "https://www.baidu.com","https://associates.amazo ...

  10. autoit获取ie浏览器简单操作网页(GUI小工具)

    需要稍稍熟悉一下autoti提供的语言, 我简单做了一个带GUI的小工具,实现根据IE标题点击页面内的LinkText 注意:使用时IE窗口是显示状态才可以获取到(可以在脚本中加入搜索IE句柄,将ie ...