1.能够说出自动装箱、自动拆箱的概念 2.能够将基本类型转换为对应的字符串 3.能够将字符串转换为对应的基本类型 4.了解String类常用方法的功能及使用
为什么要提供包装类? 1.包装类型可以使用方法. 2.包装类类型使用成员变量,默认值【null】. 3.包装类类型数据保存在【堆】中. Java提供了两个类型系统,基本类型与引用类型,使用基本类型在于效率,然而很多情况,会创建对象使用,因为对象可以做更多的功能,如果想要我们的基本类型像对象一样操作,就可以使用基本类型对应的包装类, 如下表:
基本类型对应的包装类(位于java.lang包中)byteByteshortShortintIntegerlongLongfloatFloatdoubleDoublecharCharacterbooleanBooleanInteger类概述
Integer 类在对象中包装了一个基本类型 int的值。
Integer类构造方法及静态方法
方法名说明public Integer(int value)根据 int 值创建 Integer 对象(过时)public static Integer valueOf(int i)返回表示指定的 int 值的 Integer 实例 示例代码 package com.itheima.demo01baozhuang; /* 包装类类型 */ public class Test01 { public static void main(String[] args) { int a = 100; //把基本类型转换为包装类类型 Integer i = new Integer(a); System.out.println(i.toString()); Integer ii = Integer.valueOf(a); System.out.println(ii); } }基本数据类型与对应的包装类类型之间的转换,就叫装箱与拆箱。
装箱:把基本数据类型转换为包装类类型。拆箱:把包装类类型转换为基本数据类型。用Integer与 int为例:(看懂代码即可)
基本数值----->包装对象
//装箱: int --> Integer int a = 100; Integer i = Integer.valueOf(a); // XXX.valueOf(xxx); System.out.println(i);包装对象---->基本数值
//拆箱: Integer --> int int b = i.intValue(); // x.xxValue(); System.out.println(b);由于我们经常要做基本类型与包装类之间的转换,从Java 5(JDK 1.5)开始,基本类型与包装类的装箱、拆箱动作可以自动完成。例如:
import org.omg.PortableInterceptor.INACTIVE; /* 自动装箱与自动拆箱 */ public class Test03 { public static void main(String[] args) { int a = 100; Integer i = a; //自动装箱 System.out.println(i); int b = i; //自动拆箱 System.out.println(i); } }除了Character类之外,其他所有包装类都具有parseXxx静态方法可以将字符串参数转换为对应的基本类型:
方法说明static boolean parseBoolean(String s)将字符串参数解析为 boolean 值。static byte parseByte(String s)将 string 参数解析为有符号的十进制 byte。static double parseDouble(String s)将字符串类型的小数解析为 double值。static float parseFloat(String s)将字符串类型的小数解析为 float值。static int parseInt(String s)将字符串参数作为有符号的十进制整数进行解析。static long parseLong(String s)将 string 参数解析为有符号十进制 long。static short parseShort(String s)将字符串参数解析为有符号的十进制 short。格式: xxx XXX.parseXXX(String) 代码使用(仅以Integer类的静态方法parseXxx为例)如:
转换方式 方式一:先将字符串数字转成Integer,再调用valueOf()方法方式二:通过Integer静态方法parseInt()进行转换 示例代码 /* 字符串转换为整数 1、先将字符串数字转成Integer,再调用valueOf()方法 2、通过Integer静态方法parseInt()进行转换 */ public class TestString2int { public static void main(String[] args) { //1、先将字符串数字转成Integer,再调用valueOf()方法 String s1 = "123"; Integer i = Integer.valueOf(s1); //将字符串转换为Integer int a = i.intValue(); //将Integer转换为int //2、通过Integer静态方法parseInt()进行转换 String s2 = "321"; //String s2 = "abc"; //java.lang.NumberFormatException: For input string: "abc" int i1 = Integer.parseInt(s2); System.out.println(i1); } }注意:如果字符串参数的内容无法正确转换为对应的基本类型,则会抛出: java.lang.NumberFormatException异常。
示例代码
import java.util.Arrays; public class TestString { public static void main(String[] args) { //01. char charAt(int index) 返回字符串指定索引处的字符串 // String s1 = "hello"; // System.out.println(s1.charAt(1)); //e //02. int length() 返回此字符串的长度。 // String s2 = "helloworld"; // System.out.println(s2.length()); //03. String concat(String str) 将指定字符串连接到此字符串的结尾。 把两个字符串连接到一起 // String s3 = "hello"; // System.out.println(s3.concat("world")); // System.out.println(s3 + "world"); //04. boolean contains(String s) 判断字符串中是否包含指定的字符串;包含返回true,不包含返回false // String s4 = "我爱Java,我爱学习!"; // System.out.println(s4.contains("Java")); // true //05. boolean endsWith(String suffix) 判断字符串是否以指定的字符串结尾;是返回true,不是返回false "Test.java" // String s5 = "Test.java"; // System.out.println(s5.endsWith("java")); //06. boolean startsWith(String prefix) 判断字符串是否以指定的字符串开头;是返回true,不是返回false // String s6 = "我爱Java"; // System.out.println(s6.startsWith("我")); //07. int indexOf(String str) 从前往后在字符串中查找另外一个字符串,找到了返回字符串对应的索引,找不到返回-1 // String s7 = "我爱Java,我爱学习!"; // System.out.println(s7.indexOf("Java")); // 2 //08. int lastIndexOf(String s) 从后往前在字符串中查找另外一个字符串,找到了返回字符串对应的索引,找不到返回-1 // String s8 = "我爱Java,我爱学习!"; // System.out.println(s8.lastIndexOf("我")); // 7 //09. String replace(String target, String replacement) 把大的字符串中所有的目标字符串,替换为新的字符串 // String s9 = "我爱吃红烧鲤鱼,我太想吃红烧鲤鱼了!"; // s9 = s9.replace("红烧鲤鱼","口水鸡"); // System.out.println(s9); //10. String substring(int beginIndex) 从开始索引beginIndex截取字符串到字符串的末尾 // String s10 = "青春无悔青春无悔"; // System.out.println(s10.substring(4)); // 青春无悔 //11. String substring(int beginIndex, int endIndex) 从开始索引beginIndex到结束索引endIndex截取字符串;包含头,不包含尾 // String s11 = "青春无悔青春无悔"; // System.out.println(s11.substring(2,6)); // 无悔青春 //12. char[] toCharArray() 将此字符串转换为一个新的字符数组。 // String s12 = "身无彩凤双飞翼"; // char[] chars = s12.toCharArray(); // System.out.println(Arrays.toString(chars)); // 13. String toLowerCase() 把字符串中所有的英文字符转换为小写 // String s13 = "我爱Java"; // System.out.println(s13.toLowerCase()); // 14. String toUpperCase() 把字符串中所有的英文字符转换为大写 // String s14 = "我爱Java"; // System.out.println(s14.toUpperCase()); //15. String trim() 去掉字符串两端的空格 // String s15 = " ad min "; // System.out.println(s15.trim()); //16. String[] split(String regex) 根据自定的字符串对字符串进行切割,把一个字符串切割为几部分字符串,放在一个数组中返回 // String s16 = "张三,20,男,13513153355"; // String[] ss = s16.split(","); // System.out.println(Arrays.toString(ss)); //17. boolean equals(String str) 比较两个字符串的内容是否相同,区分大小写 String s17 = "N9s6"; System.out.println("n9s6".equals(s17)); //false System.out.println("n9s6".equalsIgnoreCase(s17)); //true equalsIgnoreCase忽略大小写 } }案例
需求: 现有如下文本:“Java语言是面向对象的,Java语言是健壮的,Java语言是安全的,Java是高性能的,Java语言是跨平台的”。请编写程序,统计该文本中"Java"一词出现的次数。
方法一:
public class Demo02 { public static void main(String[] args) { Java语言是面向对象的,Java语言是健壮的,Java语言是安全的,Java是高性能的,Java语言是跨平台的" String s = "Java语言是面Java向对象的,Java语言是健壮的,Java语言是安全的,Java是高性能的,Java语言是跨平台的"; int count = 0; //计数器 int index = s.indexOf("Java"); // 记录Java在s变量中的位置 while (index!=-1){ //如果index不等于-1,说明在s变量中查找到了Java的索引。 s = s.substring(index+1); count++; index = s.indexOf("Java"); //查找截取后s变量中的Java的索引。 } System.out.println(count); /* String[] arr = s.split(","); int count = 0; for (int i = 0; i < arr.length; i++) { if(arr[i].contains("Java")){ count++; } } System.out.println(count);*/ } }方法二:
String s = "Java语言是面Java向对象的,Java语言是健壮的,Java语言是安全的,Java是高性能的,Java语言是跨平台的"; int count = 0; //计数器 int index = 0; while (s.indexOf("Java")!=-1){ s = s.replaceFirst("Java", "*"); count++; } System.out.println(count);什么是集合
提供一种存储空间可变的存储模型,存储的数据容量可以发生改变
ArrayList集合的特点
底层是数组实现的,长度可以变化(动态扩容)
创建一个存储学生对象的集合,存储3个学生对象,使用程序实现在控制台遍历该集合
import java.util.ArrayList; 需求:创建一个存储学生对象的集合,存储3个学生对象,使用程序实现在控制台遍历该集合 public class TestArrayList01 { public static void main(String[] args) { //1、创建一个集合,用于保存学生对象 ArrayList<Student> list = new ArrayList<>(); //2、创建3个学生对象 Student stu1 = new Student("桥本环奈",18); Student stu2 = new Student("石原里美",19); Student stu3 = new Student("三上优雅",18); //3、把3个学生对象添加到集合中 list.add(stu1); list.add(stu2); list.add(stu3); //4、循环遍历 for (int i = 0; i < list.size(); i++) { Student s = list.get(i); System.out.println(s); } } }创建一个存储学生对象的集合,存储3个学生对象,使用程序实现在控制台遍历该集 学生的姓名和年龄来自于键盘录入
好好学习,天天向上!
