日报
API介绍
全称应用程序编程接口,就是JAVA自己写好的程序,给程序员调用的,方便完成一些功能,在官网下载用就行,可方便了
String
字符串类型,定义的变量可以指向一个字符串对象,是不可变字符串,相加时会在常量池里新创一个字符串,然后删除之前的,new出来的字符串放在堆内存里,所以直接==判断字符串相等,以为是判断内容,实则判断的是地址,new出来的肯定不一样,常量池中的又一样,所以判断得用equals方法
/*String okName = "lillanm";
String okPassWorld = "1234567";
Scanner sc = new Scanner(System.in);
String name = sc.next();
String passWorld = sc.next();
//1.字符串比较API
if(name.equals(okName)&&passWorld.equals(okPassWorld)){
System.out.println("登录成功");
}else {
System.out.println("账号或密码错误");
}*/
//2.忽略字符大小的比较,一般用于验证码业务逻辑
Scanner sc = new Scanner(System.in);
String sysCodes = "23JOEaP2s";
String codes = sc.next();
if(codes.equalsIgnoreCase(sysCodes)){
System.out.println("验证成功");
}else {
System.out.println("验证码错误");
}
其他API
//1.public int length(); 获取字符串的长度
String name = "lillanm";
System.out.println(name.length());
//2.public char charAt(int index); 获取某个索引位置处的字符
System.out.println("-----------遍历字符串中的每个字符-----------");
for (int i = 0; i < name.length(); i++) {
System.out.print(name.charAt(i));
}
System.out.println();
//3.public char[] toCharArray(); 把字符串转化成字符数组
char[]chars = name.toCharArray();
for (int i = 0; i < chars.length; i++) {
System.out.print(chars[i]);
}
System.out.println();
//4.public String substring(int beginIndex, int endIndex); 截取字符串,有前没有后
String name2 = "好久没写算法了,我就是大佬眼中的菜鸟";
String rs = name2.substring(0,13);
System.out.println(rs);
//5.public String substring(itn beginIndex); 从当前索引一直截取到末尾
//6.public String replace(CharSequence target, ChaSequence replacement); 字符串替换
String str = "听妈妈的话";
String rs2 = str.replace("妈的","**");
System.out.println(rs2 );
//7.public boolean contains(CharSequence s); 找字符串里面有没有这个东西
//8.public boolean startsWiths(String prefix); 看开头是不是这些东西
//9.public String[] split(String s); 按照某个内容把字符串分割成字符串数组返回
String name3 = "lillanm,li,ll,an,m";
String []strings = name3.split(",");
for (int i = 0; i < strings.length; i++) {
System.out.println(strings[i]);
不用背,反正据说用着用着就会了,而且API文档很方便
ArrayList
不赘述,感觉就是很方便,集合都是支持泛型的,一般定义集合采用泛型,自己定义的类也就用上了
遍历删除会产生的小bug
for (int i = list.size()-1; i >=0 ; i--) {
if(list.get(i)<60){
list.remove(i);
}
}
如果你尝试从前向后遍历删除,删除后,角标也会跟随着改变,会有一些数值被直接越过的现象,从后向前则可以避免,如果愿意模拟一下这个过程就会理解