A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wjiuchaol1 中级黑马   /  2015-12-12 00:45  /  1239 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

正则表达式:


概述: 复合某种正确规则的表达式;

理解: 正则表达式就是一个字符串

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

记类名.

评分

参与人数 1黑马币 +3 收起 理由
张研老师 + 3 很给力!

查看全部评分

1 个回复

倒序浏览
6666666666
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马