2022-07-20 第二组 刘禹彤 学习笔记
打卡第11天
今天继续学习面向对象

###学习内容
1.String字符串
- String是一个类
- 类中可以有哪些结构?
1.属性
2.方法
3.构造器
- String一旦声明,不可改变
2.虚地址
对象在内存中的存储位置
3.String赋值
- =赋值,无论怎么比较,都是true
- new赋值,用双等号比较,都是false
4.比较字符串的内容
equals方法:
1.需要传参,传String类型的参数
2.有返回值,Boolean类型3.访问权限public
length方法:
1.不需要传参
2.有返回值,整型int
3.访问权限public
面试题:字符串获取长度的方法和数组获取长度的方法有什么区别? 数组的length是属性,字符串的length()是方法
下标(索引)
indexOf(String,int)
- 判断指定字符是否存在,返回值为字符串在s1的下标
1.如果不存在,返回-1
2.返回从左到右第一个匹配的下标
- indexOf(String,int)代表从int位置开始查找,包括当前位置
5.字符串的截取
str.substring(beginIndex,endIndex):如果传一个参数,从指定位置开始截取,直到字符串的末尾
包括起始位置的字符,不包含终止位置
生成一个新的字符串,不会改变原有数据
6.返回新的字符串
- 转大写:System.out.println(str.toUpperCase())
- 转小写:System.out.println(str.toLowerCase())
- 判断是否以xxx开头,toffset:偏移量:System.out.println(str.startsWith())
- 判断是否以xxx结尾System.out.println(str.endsWith())
- 忽略大小写,比较内容:System.out.println(str.equalsIgnoreCase())
- 去掉字符串前后的空格:System.out.println(str1.trim())
- 根据指定的字符分割,分割之后,分隔条件消失:String [] strings = str2.split()
字符串替换: System.out.println(str.replace)
7.包装器类型(包装类,封装类)
- 八种数据类型: byte--Byte
short--Short
int--Integer
long--Long
float--Float
double--Double
char--Character
boolean--Boolean
- 原理: 1、自动装箱:把int类型包装成了包装器OInteger类型
基本数据类型转换成对应的包装器类型
2、自动拆箱:把Integer类型转换成int类型
包装器类型转换成基本数据类型
笔试题: JDK5之后的新功能:1.自动装箱和自动拆箱2.增强for循环(foreach)3.枚举JDK7以后的新功能:switch...case可以用string
8.异常
1.数组下标越界
2.内存溢出
3.空指针
4.字符串下标越界
5.数字格式化
###学习心得:
今天主要学习了String字符串和将昨天员工系统案例进行了完成,通过几天的学习,对面向对象逐渐理解了,但是运用还是不够熟练,看到案例有思路但是不太会写,还是要继续努力学习
###掌握程度;理解
###相关练习
package a; import java.util.Scanner; public class Ch06_Demo { public String getGender(String cardId){ String gender = "男"; int genderNum =cardId.charAt(16); if(genderNum % 2 == 0){ gender = "女"; } return gender; } public String getBirthday(String cardId) { return cardId.substring(6, 14); } public static void main(String[] args) { // char c = '7'; // char直接转int,奇偶不变 // int i = c; // System.out.println(i); Ch06_Demo c = new Ch06_Demo(); Scanner sc = new Scanner(System.in); System.out.println("请输入身份证号:"); String cardId = sc.next(); if(cardId.length() == 18) { // String birthday = c.getBirthday(cardId); // String gender = c.getGender(cardId); // String birthday = cardId.substring(6,14); // String gender = "男"; // int genderNum =cardId.charAt(16); // if(genderNum % 2 == 0){ // gender = "女"; // } System.out.println("身份证号为:" + cardId + ",生日:" + c.getBirthday(cardId) + ",性别:" + c.getGender(cardId)); }else{ System.out.println("输入有误,请重新输入!"); } } }
代码结果:
浙公网安备 33010602011771号