Java学习笔记(五)
API39、类、常量、方法中使用文档注释40、indexOf:查找指定字符串在当前字符串中的位置(-1表示没有)重载方法允许从指定位置(不包含该位置)开始查找,但返回的是字符串中的绝对位置lastIndexOf:最后一次出现的位置41、subString,截取字符串求子串含头不含尾,或者切一刀去后半部分42、charAt(int index)获取当前字符串指定下标对应的字符43、st...
API
39、类、常量、方法中使用文档注释
40、indexOf:查找指定字符串在当前字符串中的位置(-1表示没有)
重载方法允许从指定位置(不包含该位置)开始查找,但返回的是字符串中的绝对位置
lastIndexOf:最后一次出现的位置
41、subString,截取字符串求子串含头不含尾,或者切一刀去后半部分
42、charAt(int index)获取当前字符串指定下标对应的字符
43、startWith endWith是否以…开头,以…结尾
44、static String.valueOf()将其他类型转换成字符串
45、字符串拼接StringBuilder:维护的是一个字符串,不必再开辟新的内存空间,返回的是其自身。
StringBuilder中也有无参构造方法,默认表示空字符串,toString可以转换回来
StringBuilder builder = new StringBuilder(string);
builder.append("") //向当前字符串末尾追加指定内容
builder.replace(int start, int end, String str);//替换字符串,依然是含头不含尾
builder.delete(int start, int end);//删除该区间内的内容
builder.insert(int index, String str);//在指定位置后插入,顺序往后移
StringBuffer== 老版的builder,buffer考虑了线程安全,多线程用buffer
46、正则表达式:
[abc] :abc中的任何一个字符
[^abc] : 除了abc的任意一个字符
[a-z] :a-z中的任意一个字符
[a-z&&[ ^ bc]] :除了bc之外的a-z中的任何一个字符
. :任意一字符
\d :数字字符
\w :单词字符
\s :空白字符
大写表示反向
? :0-1次字符
*:0-多次
m,n :m-n次
0,m:0-m次
{m}出现m次
(abc){3}:abc整体出现三次
|:表示或的关系
邮箱正则表达式:[a-zA-Z0-9_]+@ [a-zA-Z0-9_]+(\.[a-zA-Z0-9_])+
验证:str.matches(regex);
按照正则表达式格式进行拆分:str.split(regex);
注意事项:若按照数字[0-9]进行拆分,则a11s2d3f4g5h6,则拆分后数组的长度为7,原因是11之间拆分出了一个空字符。以数字结尾,那么便不不会再进行拆分,若以字符结尾,那么便会把字符前面的所有数字之间继续进行拆分,反汇的是一个数组,所以需要使用一个数组来接收
按照正则表达式进行替换给定的字符串:str.replaceAll(regex,“str”);
46、Object本身的toString返回的是类名@地址
47、object类的equals方法在使用时需要重写,自身的equals方法与==效果相同,比较的是地址,我们想要的是比较内容
equals模板:
public boolean equals(Object obj) {
if(obj == null) {
return false;
}
if (obj == this) {
return true;
}
if (obj instanceof Point) {
Point point = (Point)obj;
return this.x == point.x && this.y == point.y;
}
return false;
}
48、基本类型无继承关系,是以值的形式存在
包装类:为了解决基本类型不能参与面向对象开发的问题
Integer中的equals已经被重写
parseXXX(String str):可以将给定的字符串转换成对应的基本类型。XXX为基本类型,基本类型不会舍去,若无法存下则报错
49、自动拆装箱:
int i = new Integer(1);==int i = new Integer(1).intValue();
自动拆装箱是编译器认可的,而不是虚拟机认可的。编译器在将源程序编译时自动补充代码来完成基本类型与包装类之间的转换。
上述代码是自动拆箱
下述代码是自动装箱:
Integer ii = 123;//被编译器解释为 Integer.valueOf(123)
50、Date类:其内部维护一个long值
- 保存从1970年元旦到这一刻的毫秒值
//创建出来的实例表示当前系统时间
Date date = new Date();
//Thu Mar 05 17:35:34 CST 2020
System.out.println(date);
//对时间进行改变
long time = date.getTime();
time += 1000*60*60*24;
System.out.println(time);
//以标准格式进行输出
date.setTime(time);
System.out.println(date);
SimpleDateformat
Date now = new Date();
System.out.println(now);
//Thu Mar 05 17:38:26 CST 2020
//yyyy-MM-dd HH:mm:ss
String format = "yyyy-MM-dd HH:mm:ss";
SimpleDateFormat sdf = new SimpleDateFormat(format);
String str = sdf.format(now);
System.out.println(str);
/**将字符串表示为时间格式*/
String str = "2018年2月24日 21:42:26";
String format = "yyyy年MM月dd日 HH:mm:ss";
//java.text.SimpleDateFormat
SimpleDateFormat sdf
= new SimpleDateFormat(format);
Date date = sdf.parse(str);
System.out.println(date);
//output Sat Feb 24 21:42:26 CST 2018
boolean before(Date date)
若当调用此方法的Date对象在指定日期之前返回true,否则返回false。
String format = "现在是yyyy年MM月dd日 HH时mm分ss秒";//现在是2020年03月05日 18时05分30秒
51、Calendar:Calendar用于操作时间的API,通常我们使用格里高利历法(公历)
默认创建出来的Calendar表示当前系统时间
Calendar的toString是不可读的 原因是
java.util.GregorianCalendar[time=1583409895325,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id=“Asia/Shanghai”,offset=28800000,dstSavings=0,useDaylight=false,transitions=29,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2020,MONTH=2,WEEK_OF_YEAR=10,WEEK_OF_MONTH=1,DAY_OF_MONTH=5,DAY_OF_YEAR=65,DAY_OF_WEEK=5,DAY_OF_WEEK_IN_MONTH=1,AM_PM=1,HOUR=8,HOUR_OF_DAY=20,MINUTE=4,SECOND=55,MILLISECOND=325,ZONE_OFFSET=28800000,DST_OFFSET=0]
Calendar与Date之间的转换:
Date date = calendar.getTime();
设定时间的方法:
void set(int field, int value);//第一个时作用域:年月日,第二个是值
Calendar calendar = Calendar.getInstance();
calendar.set(calendar.YEAR, 123);
calendar.set(calendar.MONTH, calendar.AUGUST);
calendar.set(calendar.DAY_OF_WEEK,5);
//现在是0123年07月30日20时27分08秒
//加3年
calendar.add(Calendar.YEAR, 3);
//加2个月
calendar.add(Calendar.MONTH, 2);
//减去30天 对天的加减只用DAY_OF_YEAR
calendar.add(Calendar.DAY_OF_YEAR, -30);
//获取是哪一年
int year = calendar.get(Calendar.YEAR);
//获取哪月
int month = calendar.get(Calendar.MONTH)+1;
/*
* DAY_OF_MONTH 是"号"
* DATE 与 DAY_OF_MONTH功能一致
*/
int day = calendar.get(Calendar.DATE);
52、Collection:集合,用于存储一组元素,提供了维护集合的相关操作。
两个子接口:List:可重复集 Set:不可重复集 根据equals判断是否相等
c.contains()//看对象是否与集合中现有的对象有相同的,返回的是布尔值
集合中存放的是元素的引用(地址)
更多推荐
所有评论(0)