基本类型包装类概述

将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作该数据。
常用的操作之一:用于基本数据类型与字符串之间的转换。
基本类型和包装类的对应
Byte,Short,Integer,Long,Float,Double,Character,Boolean

Integer类

为了让基本类型的数据进行更多的操作,Java就为每种基本类型提供了对应的包装类类型

  1. package cn.itcast_01;
  2.  
  3. /*
  4. * 需求1:我要求大家把100这个数据的二进制,八进制,十六进制计算出来
  5. * 需求2:我要求大家判断一个数据是否是int范围内的。
  6. * 首先你的知道int的范围是多大?
  7. *
  8. * 为了对基本数据类型进行更多的操作,更方便的操作,Java就针对每一种基本数据类型提供了对应的类类型。包装类类型。
  9. * byte Byte
  10. * short Short
  11. * int Integer
  12. * long Long
  13. * float Float
  14. * double Double
  15. * char Character
  16. * boolean Boolean
  17. *
  18. * 用于基本数据类型与字符串之间的转换。
  19. */
  20. public class IntegerDemo {
  21. public static void main(String[] args) {
  22. // 不麻烦的就来了
  23. // public static String toBinaryString(int i)
  24. System.out.println(Integer.toBinaryString(100));
  25. // public static String toOctalString(int i)
  26. System.out.println(Integer.toOctalString(100));
  27. // public static String toHexString(int i)
  28. System.out.println(Integer.toHexString(100));
  29.  
  30. // public static final int MAX_VALUE
  31. System.out.println(Integer.MAX_VALUE);
  32. // public static final int MIN_VALUE
  33. System.out.println(Integer.MIN_VALUE);
  34. }
  35. }

Integer的构造方法

  1. package cn.itcast_02;
  2.  
  3. /*
  4. * Integer的构造方法:
  5. * public Integer(int value)
  6. * public Integer(String s)
  7. * 注意:这个字符串必须是由数字字符组成
  8. */
  9. public class IntegerDemo {
  10. public static void main(String[] args) {
  11. // 方式1
  12. int i = 100;
  13. Integer ii = new Integer(i);
  14. System.out.println("ii:" + ii);
  15.  
  16. // 方式2
  17. String s = "100";
  18. // NumberFormatException
  19. // String s = "abc";//这个字符串必须是由数字字符组成
  20. Integer iii = new Integer(s);
  21. System.out.println("iii:" + iii);
  22. }
  23. }

String和int的相互转换

  1. package cn.itcast_03;
  2.  
  3. /*
  4. * int类型和String类型的相互转换
  5. *
  6. * int -- String
  7. * String.valueOf(number)
  8. *
  9. * String -- int
  10. * Integer.parseInt(s)
  11. */
  12. public class IntegerDemo {
  13. public static void main(String[] args) {
  14. // int -- String
  15. int number = 100;
  16. // 方式1
  17. String s1 = "" + number;
  18. System.out.println("s1:" + s1);
  19. // 方式2
  20. String s2 = String.valueOf(number);
  21. System.out.println("s2:" + s2);
  22. // 方式3
  23. // int -- Integer -- String
  24. Integer i = new Integer(number);
  25. String s3 = i.toString();
  26. System.out.println("s3:" + s3);
  27. // 方式4
  28. // public static String toString(int i)
  29. String s4 = Integer.toString(number);
  30. System.out.println("s4:" + s4);
  31. System.out.println("-----------------");
  32.  
  33. // String -- int
  34. String s = "100";
  35. // 方式1
  36. // String -- Integer -- int
  37. Integer ii = new Integer(s);
  38. // public int intValue()
  39. int x = ii.intValue();
  40. System.out.println("x:" + x);
  41. //方式2
  42. //public static int parseInt(String s)
  43. int y = Integer.parseInt(s);
  44. System.out.println("y:"+y);
  45. }
  46. }

Integer的进制转换的操作

  1. package cn.itcast_04;
  2.  
  3. /*
  4. * 常用的基本进制转换
  5. * public static String toBinaryString(int i)
  6. * public static String toOctalString(int i)
  7. * public static String toHexString(int i)
  8. *
  9. * 十进制到其他进制
  10. * public static String toString(int i,int radix)
  11. * 由这个我们也看到了进制的范围:2-36
  12. * 为什么呢?0,...9,a...z,加起来36个
  13. *
  14. * 其他进制到十进制
  15. * public static int parseInt(String s,int radix)
  16. */
  17. public class IntegerDemo {
  18. public static void main(String[] args) {
  19. // 十进制到二进制,八进制,十六进制
  20. System.out.println(Integer.toBinaryString(100));
  21. System.out.println(Integer.toOctalString(100));
  22. System.out.println(Integer.toHexString(100));
  23. System.out.println("-------------------------");
  24.  
  25. // 十进制到其他进制
  26. System.out.println(Integer.toString(100, 10));
  27. System.out.println(Integer.toString(100, 2));
  28. System.out.println(Integer.toString(100, 8));
  29. System.out.println(Integer.toString(100, 16));
  30. System.out.println(Integer.toString(100, 5));
  31. System.out.println(Integer.toString(100, 7));
  32. System.out.println(Integer.toString(100, -7));
  33. System.out.println(Integer.toString(100, 70));
  34. System.out.println(Integer.toString(100, 1));
  35. System.out.println(Integer.toString(100, 17));
  36. System.out.println(Integer.toString(100, 32));
  37. System.out.println(Integer.toString(100, 37));
  38. System.out.println(Integer.toString(100, 36));
  39. System.out.println("-------------------------");
  40.  
  41. //其他进制到十进制
  42. System.out.println(Integer.parseInt("100", 10));
  43. System.out.println(Integer.parseInt("100", 2));
  44. System.out.println(Integer.parseInt("100", 8));
  45. System.out.println(Integer.parseInt("100", 16));
  46. System.out.println(Integer.parseInt("100", 23));
  47. //NumberFormatException
  48. //System.out.println(Integer.parseInt("123", 2));
  49. }
  50. }

JDK5的新特性--自动装箱和自动拆箱

  1. package cn.itcast_05;
  2.  
  3. /*
  4. * JDK5的新特性
  5. * 自动装箱:把基本类型转换为包装类类型
  6. * 自动拆箱:把包装类类型转换为基本类型
  7. *
  8. * 注意一个小问题:
  9. * 在使用时,Integer x = null;代码就会出现NullPointerException。
  10. * 建议先判断是否为null,然后再使用。
  11. */
  12. public class IntegerDemo {
  13. public static void main(String[] args) {
  14. // 定义了一个int类型的包装类类型变量i
  15. // Integer i = new Integer(100);
  16. Integer ii = 100;
  17. ii += 200;
  18. System.out.println("ii:" + ii);
  19.  
  20. // 通过反编译后的代码
  21. // Integer ii = Integer.valueOf(100); //自动装箱
  22. // ii = Integer.valueOf(ii.intValue() + 200); //自动拆箱,再自动装箱
  23. // System.out.println((new StringBuilder("ii:")).append(ii).toString());
  24.  
  25. Integer iii = null;
  26. // NullPointerException,如果iii为空对象,会报错,需要判断是否为空
  27. if (iii != null) {
  28. iii += 1000;
  29. System.out.println(iii);
  30. }
  31. }
  32. }

-128到127之间的数据缓冲池问题

  1. package cn.itcast_06;
  2.  
  3. /*
  4. * 看程序写结果
  5. *
  6. * 注意:Integer的数据直接赋值,如果在-128到127之间,会直接从缓冲池里获取数据
  7. */
  8. public class IntegerDemo {
  9. public static void main(String[] args) {
  10. Integer i1 = new Integer(127);
  11. Integer i2 = new Integer(127);
  12. System.out.println(i1 == i2);
  13. System.out.println(i1.equals(i2));
  14. System.out.println("-----------");
  15.  
  16. Integer i3 = new Integer(128);
  17. Integer i4 = new Integer(128);
  18. System.out.println(i3 == i4);
  19. System.out.println(i3.equals(i4));
  20. System.out.println("-----------");
  21.  
  22. Integer i5 = 128;
  23. Integer i6 = 128;
  24. System.out.println(i5 == i6);
  25. System.out.println(i5.equals(i6));
  26. System.out.println("-----------");
  27.  
  28. Integer i7 = ;
  29. Integer i8 = ;
  30. System.out.println(i7 == i8);//true
  31. System.out.println(i7.equals(i8));
  32.  
  33. // 通过查看源码,我们就知道了,针对-128到127之间的数据,做了一个数据缓冲池,如果数据是该范围内的,每次并不创建新的空间
  34. // Integer ii = Integer.valueOf(127);
  35. }
  36. }

Character

  1. Character 类在对象中包装一个基本类型 char 的值
  1. package cn.itcast_01;
  2.  
  3. /*
  4. * Character 类在对象中包装一个基本类型 char 的值
  5. * 此外,该类提供了几种方法,以确定字符的类别(小写字母,数字,等等),并将字符从大写转换成小写,反之亦然
  6. *
  7. * 构造方法:
  8. * Character(char value)
  9. */
  10. public class CharacterDemo {
  11. public static void main(String[] args) {
  12. // 创建对象
  13. // Character ch = new Character((char) 97);
  14. Character ch = new Character('a');
  15. System.out.println("ch:" + ch);
  16. }
  17. }
  1. Character 类,常见方法。
  1. 确定字符的类别(小写字母,数字,等等),并将字符从大写转换成小写
  1. package cn.itcast_02;
  2.  
  3. /*
  4. * public static boolean isUpperCase(char ch):判断给定的字符是否是大写字符
  5. * public static boolean isLowerCase(char ch):判断给定的字符是否是小写字符
  6. * public static boolean isDigit(char ch):判断给定的字符是否是数字字符
  7. * public static char toUpperCase(char ch):把给定的字符转换为大写字符
  8. * public static char toLowerCase(char ch):把给定的字符转换为小写字符
  9. */
  10. public class CharacterDemo {
  11. public static void main(String[] args) {
  12. // public static boolean isUpperCase(char ch):判断给定的字符是否是大写字符
  13. System.out.println("isUpperCase:" + Character.isUpperCase('A'));
  14. System.out.println("isUpperCase:" + Character.isUpperCase('a'));
  15. System.out.println("isUpperCase:" + Character.isUpperCase('0'));
  16. System.out.println("-----------------------------------------");
  17. // public static boolean isLowerCase(char ch):判断给定的字符是否是小写字符
  18. System.out.println("isLowerCase:" + Character.isLowerCase('A'));
  19. System.out.println("isLowerCase:" + Character.isLowerCase('a'));
  20. System.out.println("isLowerCase:" + Character.isLowerCase('0'));
  21. System.out.println("-----------------------------------------");
  22. // public static boolean isDigit(char ch):判断给定的字符是否是数字字符
  23. System.out.println("isDigit:" + Character.isDigit('A'));
  24. System.out.println("isDigit:" + Character.isDigit('a'));
  25. System.out.println("isDigit:" + Character.isDigit('0'));
  26. System.out.println("-----------------------------------------");
  27. // public static char toUpperCase(char ch):把给定的字符转换为大写字符
  28. System.out.println("toUpperCase:" + Character.toUpperCase('A'));
  29. System.out.println("toUpperCase:" + Character.toUpperCase('a'));
  30. System.out.println("-----------------------------------------");
  31. // public static char toLowerCase(char ch):把给定的字符转换为小写字符
  32. System.out.println("toLowerCase:" + Character.toLowerCase('A'));
  33. System.out.println("toLowerCase:" + Character.toLowerCase('a'));
  34. }
  35. }

统计一个字符串中大写字母字符,小写字母字符,数字字符出现的次数

  1. package cn.itcast_03;
  2.  
  3. import java.util.Scanner;
  4.  
  5. /*
  6. * 统计一个字符串中大写字母字符,小写字母字符,数字字符出现的次数。(不考虑其他字符)
  7. *
  8. * 分析:
  9. * A:定义三个统计变量。
  10. * int bigCont=0;
  11. * int smalCount=0;
  12. * int numberCount=0;
  13. * B:键盘录入一个字符串。
  14. * C:把字符串转换为字符数组。
  15. * D:遍历字符数组获取到每一个字符
  16. * E:判断该字符是
  17. * 大写 bigCount++;
  18. * 小写 smalCount++;
  19. * 数字 numberCount++;
  20. * F:输出结果即可
  21. */
  22. public class CharacterTest {
  23. public static void main(String[] args) {
  24. // 定义三个统计变量。
  25. int bigCount = 0;
  26. int smallCount = 0;
  27. int numberCount = 0;
  28.  
  29. // 键盘录入一个字符串。
  30. Scanner sc = new Scanner(System.in);
  31. System.out.println("请输入一个字符串:");
  32. String line = sc.nextLine();
  33.  
  34. // 把字符串转换为字符数组。
  35. char[] chs = line.toCharArray();
  36.  
  37. // 历字符数组获取到每一个字符
  38. for (int x = 0; x < chs.length; x++) {
  39. char ch = chs[x];
  40.  
  41. // 判断该字符
  42. if (Character.isUpperCase(ch)) {
  43. bigCount++;
  44. } else if (Character.isLowerCase(ch)) {
  45. smallCount++;
  46. } else if (Character.isDigit(ch)) {
  47. numberCount++;
  48. }
  49. }
  50.  
  51. // 输出结果即可
  52. System.out.println("大写字母:" + bigCount + "个");
  53. System.out.println("小写字母:" + smallCount + "个");
  54. System.out.println("数字字符:" + numberCount + "个");
  55. }
  56. }

13-03 Java 基本类型包装类概述,Integer类,Character的更多相关文章

  1. java 基本类型包装类,system类,Math类,Assrays类,大数据运算

    实现字符串与基本数据之间转换 将字符串转成基本数据类型方法 例如:将字符串转成成int类型 String str ="123"; int a =Integer.parseInt(s ...

  2. Java基础知识强化65:基本类型包装类之Integer的构造方法

    1. Integer类概述 (1)Integer类在对象中包装了一个基本类型 int 的值,Integer类型的对象包含一个int类型的字段. (2)该类提供了多个方法,能在int类型和String类 ...

  3. java学习笔记18(基本类型包装类,system类)

    基本类型包装类 定义:程序界面用户输入的数据都是以字符串类型存储的,如果需要操作这些字符串进行运算,需要转成基本数据类型,这时就要用到基本类型包装类,例: public class Demo { pu ...

  4. JAVA基础之基本类型包装类、System类、Math类、Arrays类及大数据运算

    个人理解: 为了方便运算及调用一些方法,我们需要将基本类型的数值转换为对象:不过转换的时候需要特别注意好它们的类型到底是什么,需要调用方法的类名是哪个!特别注意是Byte常量池的相关问题(==):gc ...

  5. Java 基本类型包装类Wrapper

    一.包装类概述 1.为什么需要包装类 Java并不是纯面向对象的语言.Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的.基本数据类型有它的优势:性能(效率高,节省空间). ...

  6. java 基本类型包装类

    一 基本类型包装类 1.包装类概述 Java中提供了相应的对象来解决实现字符串与基本数据之间转换问题,基本数据类 型对象包装类:java将基本数据类型值封装成了对象. 8种基本类型对应的包装类如下: ...

  7. 03 Java的数据类型分为两大类 类型转换 八大基本类型

    数据类型 强类型语言:要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用 Java的数据类型分为两大类 基本类型(primitive type) 数值类型 整数类型 byte占1个字节范围: ...

  8. 基本类型包装类、System类、Math类、Arrays类、大数据运算

    1 基本类型包装类 Java中想对8种基本数据类型进行复杂操作很困难. 实际程序界面上用户输入的数据都是以字符串类型进行存储的. 程序开发中,需要把字符串转换成指定的基本数据类型. 1.1基本数据类型 ...

  9. Java学习笔记24(Integer类)

    这里介绍基本数据类型包装类,Integer是int的包装类, 其他的基本数据类型的包装类的方法和Integer的方法几乎一致,会一种即可全会 基本数据类型包装类的特点:用于在基本数据类型和字符串之间进 ...

随机推荐

  1. 迭代器模块 itertools

    无限迭代器 itertools 包自带了三个可以无限迭代的迭代器.这意味着,当你使用他们时,你要知道你需要的到底是最终会停止的迭代器,还是需要无限地迭代下去. 这些无限迭代器在生成数字或者在长度未知的 ...

  2. Python自动化测试用例设计--自动化测试用例与手工测试用例区别与联系

    1. 前言 手工测试用例是针对手工测试人员,自动化测试用例是针对自动化测试框架,前者是手工测试用例人员应用手工方式进行用例解析,后者是应用脚本技术进行用例解析,两者最大的各自特点在于,前者具有较好的异 ...

  3. protobuf shutdownprotobuflibrary的时候crash,释放的指针出错

    往往是多个子项目中有多次链接使用. 解决方法: 1. 使用静态库. 2. issure中有说2.6.1还未允许多次释放,建议使用3.4.x版本. 参考: https://github.com/prot ...

  4. 如何快速学好Shell脚本? 转

    如何快速学好Shell脚本?   目录 写作思路 知识体系 Shell 语言作为类 Unix 系统的原生脚本,有着非常实用的价值.但对于很多刚刚接触 Shell 脚本的同学来说,搞懂 Shell 语言 ...

  5. 2,postman的tests的断言写法

    tests的断言主要是分为三类 状态码,header内容和波body内容的测试,波body的不常用( 不容易控制) pm.expect(pm.response).to.have.status(&quo ...

  6. chrom中 background 调用pop.js

    //监听快捷键 chrome.commands.onCommand.addListener(function(command) { if (command == "cleanKey" ...

  7. print('{:15}|{:^9}|{:^9}'.format('', 'lat.', 'long.'))是什么意思?

    平台:win10 x64+Python3.7.0 先了解下——Python3 字符串格式化 Python字符串的格式化方法分为两种,分别为占位符(%)和format方式. 占位符方式在Python2. ...

  8. Android 简单布局、控件

    布局 线性布局 LinearLayout <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android ...

  9. ABP框架系列之四十四:(OWIN)

    If you are using both of ASP.NET MVC and ASP.NET Web API in your application, you need to add Abp.Ow ...

  10. OpenGL Compute Shader靠谱例子及读取二进制Shader,SPIR-V

    学OpenGL以来一直苦恼没有像DX那样可以读取二进制Shader使用的方法,除去有时不想公开自己写的牛逼Shader的心理(虽然目前还从没写过什么牛逼的Shader), 主要是不用现场编译,加快读取 ...