本篇是对于这一段时间以来接触到的常用api的一些总结,便于以后的查阅。。。。
一.正则表达式
对于正则表达式,我的感觉就是当我们在做某些题的时候正则表达式会省去我们很多的时间,并且正则表达式的使用格式也十为简洁且有规律。
正则表达式也是属于lang包的,是我们可以直接调用的.
下面是对其一些常用方法的描述:
1.matches(String regex);该方法返回值为boolean类型.用于判断一个字符串格式的正确与否具体使用如下:
public class Demo1 {
public static void main(String[] args) {
System.out.println(function());
System.out.println(function1());
}
public static boolean function() {
String QQ="123456";
boolean b=QQ.matches("[1-9][\\d]{4,9}");
return b;
}
public static boolean function1() {
String tellNumber="1333235234";
boolean b=tellNumber.matches("1[34578][\\d]{9}");
return b;
}
}
返回值:true false
2.spilt(Char input);该方法用于字符串的切割,即把我们作为分隔符的符号去掉(感觉表述有些问题,还是看代码吧)
public class Demo2 {
public static void main(String[] args) {
function(); -----------------------输出12234455cc
function1(); -----------------------输出122345564445344
function2(); -----------------------输出19216811
}
public static void function() {
String s="12-23-44-55-cc";
String[] st=s.split("-");
for (int i = 0; i < st.length; i++) {
System.out.print(st[i]+" ");
}
}
public static void function1()
{
String s="12 23 45 56 44 45344";
String[] st=s.split(" ");
System.out.println("---------------------------");
for (int i = 0; i < st.length; i++) {
System.out.print(st[i]+" ");
}
System.out.println(st[st.length-1].toCharArray().length);
}
public static void function2() {
String s="192.168.1.1";
String[] st=s.split("[^0-9]");
System.out.println("---------------------------");
for (int i = 0; i < st.length; i++) {
System.out.print(st[i]+" ");
}
}
}
这个方法在我看来是正则表达式中最好使的方法了,前两天做了一道题让计算一个仅包含字母与空格的字符串的最后一个单词的长度,我当时要是能想起来用这玩意该多好
直接一切割然后输出最后一个字符串长度便好了......
3.replaceAll(String regex,String s)主要是用来替换一些我们所不需要的元素(代码说话吧)
public class Demo3 {
public static void main(String[] args) {
function();
}
public static void function() {
String s="Hello12345World2345";
String t=s.replaceAll("[\\d]+", "#");
System.out.println(t);
}
}
结果:Hello#World#
我仅仅总结了正则表达式中的三种方法,但并不代表就没有其他方法了,只是对于我来说需要掌握的便是这三个了,其他的大可以通过查询api的方式去了解.
二.关于时间的API的简单总结
为什么说是简单总结嘞?
在我看来这部分真的涉及了太多的接口呀,子类呀。。。(反正就是很复杂)而且这个类只有我们在某些特殊环境下才会使用(比如给软件中加入时间功能),所以我就简单总结总结吧,以后若是真的需要用到了,大不了就去查查API呗。
绝对不是懒!!!
1.currentTimeMills()方法返回值为long型数据,具体返回的是我们当前时间距公元1970年1月1日,午夜0:00:00的毫秒值()。
public class DateDemo1 {
public static void main(String[] args) {
long time=System.currentTimeMillis();
System.out.println(time);
}
}
2.Date类的相关方法以及使用
Date是存在于util包中的,我们通过查看API就会发现很多方法都过时了,很多功能都被Calendar类给代替了,但是它仍然是我们在做一个系统中不可或缺的一部分(个人愚见,哈哈)
1.Date date=new Date()中的对象date值代表什么,是一个地址吗?还是其他的什么?(用代码来说话把。)
import java.util.Date; public class DateDemo1 {
public static void main(String[] args) {
function();
}
public static void function() {
Date date=new Date();
System.out.println(date);
}
}
结果:Mon Mar 18 20:51:11 CST 2019
很显然Date类重写了toString方法,输出的是当前时间.不过时间格式是以格林威治时间表的格式输出的,也就是月是0-11月,小时是0-23小时
2.Date类的get,set方法
Date类的getTime方法作用是与我们上面说的currentTimeMiles方法一样,返回值都是long型的毫秒数
Date类的setTime方法作用是将毫秒数转换为Date类对象即转换为当前时间。代码如下。
import java.util.Date; public class Demo2 {
public static void main(String[] args) {
function();
function1();
function2();
}
public static void function() {
Date date=new Date();
System.out.println(date);
}
public static void function1() {
Date date=new Date();
long time=date.getTime();
System.out.println(time);
}
public static void function2() {
Date date=new Date();
date.setTime(1552825481623l);
System.out.println(date);
}
}
结果:
Mon Mar 18 20:55:03 CST 2019
1552913703624
Sun Mar 17 20:24:41 CST 2019
3.SimpleDateFormat类的使用
从我们上文的时间输出格式来看的话,很明显是很不人性化的,不是那么的简洁易懂,所以SimpleDateFormat就从天而降啦(哈哈),没错这个类中方法的作用就是帮助我们将时间格式化,做成我们能够认识的格式(用代码来说明吧):
import java.text.SimpleDateFormat;
import java.util.Date;
public class Demo6 {
public static void main(String[] args) {
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
String s=sdf.format(new Date());
System.out.println(new Date());
System.out.println(s);
}
}
结果:
Mon Mar 18 21:05:49 CST 2019
2019年03月18日 21时05分49秒
其方法parse的作用
有时当我们键入时间是机器是无法直接识别的,我们必须将其转化为初始格式的时间
import java.text.SimpleDateFormat;/*
* 格式化用户输入的时间
* 字符串转化为日期对象
*/
public class Demo4 {
public static void main(String[] args) throws Exception{
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
Date date1=sdf.parse("1999-04-25");
System.out.println(date1);
}
}
结果:Sun Apr 25 00:00:00 CST 1999
4.Calendar类的介绍及使用
此处会详细介绍,从其对象的创建以及方法的调用等等都会介绍
首先Calendar是一个抽象类,他自身是无法实例化对象的(我想这里应该都知道,就不在多说了),但是我们又必须要借助对象调用他的方法,那么我们只能实例化其子类的对象了,并且在Calendar类中,大部分类似于年 月 日等都是以static修饰符修饰的,所以我们是可以类名.直接调用的(接下来通过代码来进行具体的分析吧)
import java.util.Calendar; public class Demo5 {
public static void main(String[] args) {
Calendar c=Calendar.getInstance();
System.out.println(c);
}
}
结果:一堆数据,全是关于时间的,有兴趣的可以自己试试输出的是啥,太长了就不粘贴了
为啥要调用getInstance方法嘞?
当我们查看API后得到的信息是 使用默认时区和语言环境获得一个日历(是不是看不懂,哈哈)
其实当我们查看源码后,最后返回了一个子类对象我想这才是最重要的。
好,我们再说说Calendar类的get,set方法吧 这次先给代码再进行分析
import java.util.Calendar; public class Demo5 {
public static void main(String[] args) {
Calendar c=Calendar.getInstance();
c.set(2088, 10,5); //可以看出set方法是为了重置时间
int year=c.get(Calendar.YEAR); //可以看到get方法是为了取出此时的静态的年月日等数据
int month=c.get(Calendar.MONTH);
int day=c.get(Calendar.DAY_OF_MONTH);
System.out.println(year+"年"+month+"月"+day+"日");
System.out.println(c);
}
}
结果:2088年10月5日
仔细想想,其实跟我们平时的get,set方法没啥两样嘛。。
三.结束
本来是准备在一篇之中就将这些全部总结完的,但是为了以后查阅方便就分两篇总结吧,我这个人在学习的时候,喜欢思考,但是对于某一部分知识总是会自以为然的想“啊,对,他应该就是这样”,所以请指出错误。。。 另外加油,最近在学习之时有些浮躁了,希望尽快调整吧。