正则表达式:
概述: 复合某种正确规则的表达式;
理解: 正则表达式就是一个字符串
String类中的方法:
public boolean matches(String regex) 判断字符串给定的 正则表达式是否匹配
效验: 必须是数子 5-15位 0不能开头
正则: [1-9]\\d{4.14}
分类.:
字符类:[abc] abd其中的任意一个字符都可以
[^abc] 除了abc之外的都可以.
[a-zA-Z] 任意一个字母
[0-9] 任性的数字
预定义字符类:
.任意字符
\d 任意数字
\w 单子字符(所有的英文字母 数字 和下划线)
\W 非 一般是用来匹配特殊符号的
数量词:
x? 一次或者一次也没有
x* 零次到多次
x+ 一次到多次
x{n} 恰好n次
x{n,} 至少n次
x{n,m} 至少n次. 最多不能超过m次
切割:
public String[] split(String regex); // 如果想要按照.来切割 不能直接. 而是需要\\.
String s = "18-24"; "18" "24"
1:通过切割 获取到字符串中的每个 数字形式的字符串"91,27,46,38,50"
2:把切割后的字符串 专程对应的int类型 用int[];来存储
关键点: int[] 的长度是: 你切割后的字符串数组的长度
3:对int[] 进行排序
4 :把int[] 数组拼爹成字符串
分组
功能: 从左到右 开括号的形式来进行分组
pattern和 和Matcher
pattern p = pattern.compile("a*b"); //获取正则表达式对象
Matchaer m = p.matcher("aaaaa");//获取到匹配其(根据定的字符串获取到对象的匹配对象)
boolean b = m.matches//通过匹配其兑现不过调用meatches 方法 对字符串和正则效验
上边三行相当于:sop("aaaaab".matcher(a*b))
找到字符中的所有手机号:
Matcher类中的两个方法;
public boolean find()// 根据正则去找 字符串中是否有能和正则匹配的项
public String group; // 获取到刚才找到的那个元素!
正则表达式 在实际开发中 我们一般不会自己写. 因为你写的别人也不敢用
Math类:
概述. 数学运算......
abs()绝对值
ceil()天花板数 向上取整
floor() 地板数
max
求三个整数的最大值:
Math.max(Math.max(10,20),30)
min
random
round
pow(double n, double m) n^m
面试题: 自己写一个方法, 模拟四舍五入 12.3 12.9
思路:
+0.5 然后取地板数
sqrt();开平方
Random类:
够脏方法:
public Random(); 常用
public Random(long seed); 根据给定的种子的随机数是一样的
如果种子一样, 那么每次生成随机数的顺序是一样的吗,
英勇: 一般是七夜用来批量生成帐号或密码
成员方法:
public int nextInt(); int 范围内的随机数
public intnextInt(int n) 0-n之间的随机数 保左不包邮 重点掌握
System类的概述: 有用的类字段和方法 不能被实例化
不能被实例化
gc
exit ; 退出当前正在运行的java虚拟机 非0代表异常终止
currentTimeMillis() 获取当前时间的毫秒值 1s = 1000
arrayCopy (object src , int srcIndex, Object dest int int destIndex ,int length)
从数组src的指定位置srcIndex开始拷贝 指定长度length的数据.到目标数组dest 的指定位置destIndex
bigIntregr: 很大的整数
可以让超过Integer范围的数字进行运算,.
+-*/ 商和余数
add;
subtract
multply
divide
divideAndRemainder
bigDecimal:为了更精确小数.
add;
subtract
multply
divide
date:
日期类, 可以精确到毫秒.
够脏方法:
public Date();
public Date(long time)
成员方法:
public long getTime();反回毫秒值
public void setTime();设置毫秒值
SimpleDateFormat: 日期格式化类
可以对日期进行格式化, 父类是DateFormat
够脏方法:
public SimpleDateFormat();
public SimpleDateFormat(String patter);
常见的模版
yyyy年mm月dd日 hh:mm:ss
成员方法:
Date - String : 格式化
public final String format(Date d); 把日期对象转成对应的字符串形式
String - Date : 解析
public Date parse(String s); 把字符串专程对应的日期对象
注意:要泡衣长
在红色波浪线处按ctrl+1 然后选择第一项
练习题.: 你来到这个世界多少天了, 用代码应该怎么做
String birthday = "1994年06月12日";
String today= "2015年12月7日";
SimpleDateFormat sdf = new SimpleDateFormat("YYYY年MM月MM日")
Date d1 = sdf.parse(birthday);
Date d2 = sdf.parse(today);
long time = d2.getTime() - d1.getTime();
System.out.println(time/1000/60/60/24/365);
思路: 1: 把两个字符串形式的日期 转成对应的 日期对象
2: 通过日期对象,调用Date类中的getTime() 方法,获取到毫秒只
3, 两个毫秒只等进行剑法操作,得到的就是我们存活的总共毫秒只
4,把毫秒值转成天即可.
Calendar :
他是一个抽象类,他为特定瞬间与一组 如(YEAR,MONTH DAY_OF_MONTH)
日历类.
成员方法
public static Calendatr getInstance(); 获取日历类对象
Calsenddar c Calendar.getInstance(); 多态. 父类引用指向子类对象
public int get (int field); 根据传入的字段. 获取气质
注意: 月month的范围是从:0-11 开始
每星期的星期日 是一周中的第一天.
面试题: 判断某年是闰年还是平年
可能会变形为: 给定年份,然后让咱们求这一年的2月有多少天.
比较low的做法:闰年规则: 能被4整除 但不能被100整除 或者 能被400整除
高大尚的方法:
思路:1通过键盘录入,获取到用户输入的年份,
2,把时间设置为该年的3月1日 .
3,把天数往前推1天.就是二月的最后一天
4,然后获取到该天是该月的哪天即可.
Scanner sc = new Scanner (System.in);
System.out.println("请输入年份,判断该年份是闰年还是平年");
int year = sc.nextInt();
String line = sc.nextLine();
int year = integer.parseInt(line);
boolean b = getyear(year);
System.out.println(b);
private static boolean getYear(int year)
Calendar c = Calendar.getInsrance();
c.set(year,2,1);
c.add(Calendar.DAY_OF_MONTH, -1);
return c.get(Calendar.DAY_OF_MONTH) == 29;
add和set方法:
add 是添加的意思
public void add(int field, int amount);
对要操作的字段(field) 增大 或者减小 指定的偏移量.
set 修改指定字段
public final void set(int year, int month, int day); 设置指定的年月日
\\\
需求:求1-100的随机数
第一种方式
(int)(Math.random()*100) +1
记类名.
|