目录
知识点掌握情况
String字符串(了解) 包装器类型(理解)
学习心情(心路历程)
知识点比较简单,学起来很轻松,Nice!!!
1. String字符串
-
String str="aknk"; String s1="aknk"; String s = new String("aknk"); //s指向的aknk与s1指向的aknk不在同一个区域内 String s2 = new String("aknk"); System.out.println(s2==s); // false System.out.println(s1==s); // false System.out.println(s1==str);// true
-
== 双等号比较的是虚地址
-
虚地址:对象在内存中的存储位置
-
String字符串——字符拼成的串
-
String一旦声明不可改变
1.1 String常用方法
-
equals方法(比较字符串的内容)
- 需要传参,传String类型的参数。
- 有返回值,返回值是布尔类型的。
- 访问权限public
-
length方法(获取字符串的长度)
- 不需要传参
- 有返回值,返回值是整数型(int)的。
- 访问权限public
- 数组的length是属性,字符串的length()是方法
-
charAt方法(取出指定下标位置的字符)
- 需要传参,传int类型的参数
- 有返回值,返回字符型的。
- 访问权限public
-
indexOf(String str)(判断指定字符是否存在,返回值为字符串的下标)
- 需要传参
- 有返回值:int
- 如果不存在返回-1
-
indexOf(String str, int fromIndex)(判断指定字符是否存在,从int的位置开始找,包括当前位置,从前往后)
-
lastIndexOf(String str, int fromIndex)(意思同index’Of一样,从后往前找)
-
substring方法(截取成一个新的字符串)
- 传一个int参数——截取从int下标开始到最后的所有字符 (包含起始位置)
- 传两个int参数——截取从第一个int下标到第二个int下标之间的所有字符串(不包括终止位置的字符)
-
不重要
-
String s1="aas,ca,cfs,aga,c,aa"; String s2="AAS"; s1.toUpperCase(); //转大写 s1.toLowerCase(); //转小写 s1.startsWith("a",2); //判断以什么开头 返回布尔型 s1.endsWith("a"); //判断以什么结尾 返回布尔型 s1.equalsIgnoreCase(s2);//忽略大小写进行比较 s1.trim(); // 去掉字符串前后的空格 String[] str=s1.split(",");//根据指定的字符分割
-
-
replace方法(字符串的替换)
-
String s1="adasggasda"; System.out.println(s1.replace("a", ""));//dsggsd System.out.println(s1.replaceAll("ada", ""));//sggasda
-
-
任何数据类型和字符串做加法,结果都是字符串
-
把其他数据类型转换成字符串,(+“”)不推荐,(valueOf(基本数据类型))推荐
-
字符串转换成数组
-
//转成字节型的数组 //操作文件IO流的时候用到 private static void test3(String s1) { byte[] bytes=s1.getBytes(); for (byte b : bytes) { System.out.println(b); } }
-
2. 包装器类型
基本数据类型 | byte | short | int | long | float | double | char | boolean |
---|---|---|---|---|---|---|---|---|
包装类(封装类) | Byte | Short | Integer | Long | Float | Double | Character | Boolean |
以后不要用基本数据类型
-
Integer的默认值是null,int的默认值是0
-
/* 原理: 把int类型包装成包装器的Ingeter类型 * */ static Integer a =1;
-
把基本数据类型转换成对应的包装器类型——自动装箱
-
把包装器类型转换成对应的基本数据类型——自动拆箱
2.1 包装器类型的方法
- parseInt方法(把字符串转换成int类型)
- toString方法(把基本数据类型转换成字符串类型)
3.拓展
-
JDK5之后的新功能:
- 自动装箱,自动拆箱
- 增强for循环(foreach)
- 枚举
-
JDK7以后的新功能:
- switch…case可以用字符串
-
异常:
- 数字格式化异常
- 字符串下标越界异常
练习
-
需求:查找在一个字符串中另一个字符串出现的次数,
-
int c=0; for (int i = 0; i < s1.length(); ) { if (s1.indexOf(s2,i)>-1){ i=s1.indexOf(s2,i)+1; c++; }else{ i++; } } System.out.println(c);
-
需求:根据身份证号码获取生日,性别
-
private static void test5(Scanner scanner) { System.out.println("请输入您的身份证号码:"); String next = scanner.next(); if (next.length()==18) { String month = next.substring(10, 12); String year = next.substring(6, 10); String day = next.substring(12, 14); String gender = next.substring(16, 17); int age = Integer.parseInt(year); int a = Integer.parseInt(gender); System.out.println("年龄:" + (2022 - age)); System.out.println("出生日期:" + year + "年" + month + "月" + day + "日"); if (a % 2 == 0) { System.out.println("性别:女"); } else { System.out.println("性别:男"); } }else { test5(scanner); } }
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/275715.html