Java语言学习day 11 - 常用类API使用(日期,随机数,正则表达式)
2020-08-19 19:03
190 查看
Java入门day 11 - 常用类
- 4.1 StringBuilder的常用方法和作用
- 4.2 如果理解StringBuilder中的容量
- 4.3 String、StringBuilder、StringBuffer三者的区别
- 4.4 日期和String的相互转换(格式化和解析):SimpleDateFormat
- 4.5 如何方便的操作日期中的数据? Calendar中有哪些常用的方法?
- 4.6 说说你对正则表达式的理解? 通常用在什么地方?
1 日期
1.1 Date
-
Date类: 日期时间类, 表示年, 月, 日, 小时, 分钟, 秒.
注意: 在使用中我们使用:java.util.Date类.
import java.util.Date; public class DateDemo { public static void main(String[] args) { Date d = new Date();//得到当前日期 System.out.println(d); //获取日期中的字段(年月日时分秒) System.out.println(d.toLocaleString());//本地区域时间风格 } }
1.2 SimpleDateFormat
- SimpleDateFormat: 日期的格式化类
- 功能:
- 格式化: Date类型转换为String类型: String format(Date date).
- 解析: String类型转换为Date类型: Date parse(String source).
- 简单类型的数据 -> 复杂类型的数据
import java.text.SimpleDateFormat; import java.util.Date; public class SimpleDateFormatDemo { public static void main(String[] args) { //格式化: 将Date对象转换成String //Date对象 --->"2020-08-19 11:26:30" Date d = new Date(); System.out.println(d); //SimpleDateFormat类:format SimpleDateFormat sdf = new SimpleDateFormat(); //指定日期的格式 //M表示月, m表示分钟 sdf.applyPattern("yyyy-MM-dd hh:mm:ss"); String sdate = sdf.format(d); System.out.println(sdate); } }
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class SimpleDateFormatDemo2 { public static void main(String[] args) throws ParseException { //日期的解析:String ->Date String s = "2020年08月19日 11时44分30秒"; SimpleDateFormat sdf = new SimpleDateFormat(); //需要在解析前,指定日期的格式 //才能从字符串中获取到对应的数据 sdf.applyPattern("yyyy年MM月dd日 hh时mm分ss秒"); //一旦出现ParseException异常,那么肯定是指定格式错了 Date d = sdf.parse(s); System.out.println(d); } }
1.3 Calendar
- Calendar:日历类 : 主要用来对日期做相加减, 重新设置日期时间功能.
- Calendar本身是一个抽象类, 通过getInstance方法获取对象, 其底层创建的是Calendar的子类对象.
import java.util.Calendar; public class CalendarDemo { public static void main(String[] args) { //获取到Calendar的子对象 //通过Cale操作当前日期 Calendar c =Calendar.getInstance(); System.out.println(c); int year = c.get(Calendar.YEAR); int month = c.get(Calendar.MONTH)+1; int date = c.get(Calendar.DATE); int hour = c.get(Calendar.HOUR); int minute = c.get(Calendar.MINUTE); int second = c.get(Calendar.SECOND); System.out.println(year); System.out.println(month); System.out.println(date); System.out.println(hour); System.out.println(minute); System.out.println(second); //年份设置为2021年 c.set(Calendar.YEAR, 2021); System.out.println(c.get(Calendar.YEAR)); } }
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class CalendarDemo2 { public static void main(String[] args) throws ParseException { //给定一个日期字符串, 找到该前一周的日期 String endDate = "2020-08-19 14:59:50"; //需要一个Date, 但是目前只有String //String -> Date SimpleDateFormat SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date d = sdf.parse(endDate); //结束日期设置为2020-08-19 23:59:59 Calendar c = Calendar.getInstance(); c.setTime(d); c.set(Calendar.HOUR_OF_DAY,23); c.set(Calendar.MINUTE,59); c.set(Calendar.SECOND,59); System.out.println(c.getTime()); //获取到一周前的时间 c.add(Calendar.SECOND, 1); c.add(Calendar.DAY_OF_MONTH,-7); System.out.println(c.getTime()); //得到一个开始时间 2020-08-13 00:00:00 String beginDate = "2020-08-12 14:59:50"; } }
2 随机数
2.1 Math
- Math定义: Math 类包含用于执行数学运算的方法, 如初等指数、对数、平方根和三角函数等, 该类的方法都是static修饰的.
public class MathDemo { public static void main(String[] args) { //最大值 System.out.println(Math.max(99,22)); //最小值 System.out.println(Math.min(99,22)); //生成[0,1)之间的随机小数 System.out.println(Math.random()); //生成[0,100)之间的随机整数 System.out.println((int)(Math.random()*100)); } }
2.2 Random
- Random定义: Random类用于生产一个伪随机数( 通过相同的种子, 产生的随机数是相同的 ), Math类的random方法底层使用的就是Random类的方式.
import java.util.Random; public class RandomDemo { public static void main(String[] args) { Random r = new Random(); //指定[0, 100)之间的随机数 System.out.println(r.nextInt(100)); //随机获取A~Z之间的5个字母组成的字符串 //先生成65-90之间的随机数 0-25之间的随机数 StringBuilder sb =new StringBuilder(5); for (int i=0;i<5;i++){ sb.append((char)(r.nextInt(26)+65)); } System.out.println(sb); } }
2.3 UUID
- UUID定义: UUID表示通用唯一标识符 (Universally Unique Identifier) , 其算法通过电脑的网卡、当地时间、随机数等组合而成, 优点是真实的唯一性, 缺点是字符串太长了.
import java.util.UUID; public class UUIDDemo { public static void main(String[] args) { //UUID UUID uuid = UUID.randomUUID(); System.out.println(uuid); //转成toString 拿到前5位 String suuid = UUID.randomUUID().toString().substring(0,5); System.out.println(suuid); } }
3. 正则表达式
- 正则表达式定义: 正则表达式用来判断某一个字符串是不是符合某一种正确的规则, 在开发中通常用于判断操作、替换操作、分割操作等.
3.1 匹配规则一
public class REDemo { public static void main(String[] args) { //校验字符串是否匹配指定的规则 //正则表达式中需要使用到反斜线\ //反斜线在java中是转义符 System.out.println("\"\""); System.out.println("1234567S".matches("\\d")); //只能匹配一个字符 //符合ABC中其中一个字符 System.out.println("A".matches("[ABC]")); //除了ABC以为的字母 System.out.println("S".matches("[^ABC]")); //符合a-z A-Z 0-9的字符 System.out.println("2".matches("[a-zA-Z0-9]")); //数字 System.out.println("2".matches("\\d")); //非数字 System.out.println("2".matches("\\D")); //字母,数字,下划线 System.out.println("_".matches("\\w")); //非字母,数字,下划线 System.out.println("_".matches("\\W")); //空白字符 System.out.println(" ".matches("\\s")); //非空白字符 System.out.println(" ".matches("\\S")); } }
3.2 匹配规则二
4总结
4.1 StringBuilder的常用方法和作用
StringBuilder常用方法:
- append: 追加, 在字符串后面加上,非静态方法.
- StringBuilder(int capacity): 指定容量.
- StringBuilder deleteCharAt(int index):删除指定索引位置的字符
StringBuilder作用: 解决多个字符串拼接低性能的问题. 特别是在循环中连接字符时.
4.2 如果理解StringBuilder中的容量
StringBuilder容量: 当我们使用StringBuilder的时候,默认容量位16,但是我们不必担心容量不够得问题, 因为当容量不够的时候的会自动扩容,以16的倍数.
4.3 String、StringBuilder、StringBuffer三者的区别
String: 是不可变字符串, 比较适合连接几个字符串的时候.
StringBuilder和StringBuffer: 都是可变的字符串, 本质是一个char[ ].
StringBuilder: 线程不安去, 但是性能比较高.
StringBuffer: 线程安全, 但是性能比较低.
两个都可以用来拼接多个字符串.
4.4 日期和String的相互转换(格式化和解析):SimpleDateFormat
格式化: Date -> String : 使用String format(Date date).
解析: String -> Date : 使用Date parse(String source).
具体使用看代码:
import java.text.SimpleDateFormat; import java.util.Date; public class SimpleDateFormatDemo { public static void main(String[] args) { //格式化: 将Date对象转换成String //Date对象 --->"2020-08-19 11:26:30" Date d = new Date(); System.out.println(d); //SimpleDateFormat类:format SimpleDateFormat sdf = new SimpleDateFormat(); //指定日期的格式 //M表示月, m表示分钟 sdf.applyPattern("yyyy-MM-dd hh:mm:ss"); String sdate = sdf.format(d); System.out.println(sdate); } }
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class SimpleDateFormatDemo2 { public static void main(String[] args) throws ParseException { //日期的解析:String ->Date String s = "2020年08月19日 11时44分30秒"; SimpleDateFormat sdf = new SimpleDateFormat(); //需要在解析前,指定日期的格式 //才能从字符串中获取到对应的数据 sdf.applyPattern("yyyy年MM月dd日 hh时mm分ss秒"); //一旦出现ParseException异常,那么肯定是指定格式错了 Date d = sdf.parse(s); System.out.println(d); } }
4.5 如何方便的操作日期中的数据? Calendar中有哪些常用的方法?
对日期数据进行操作我们可以使用Calendar: 日历类, 可以帮我们对日期做相加减, 重新设置日期时间功能.
Calendar:
//设置的年月日小时分钟秒的值 c.setTime(d); c.set(Calendar.YEAR,2020); c.set(Calendar.MONTH,23); c.set(Calendar.DATE,10); c.set(Calendar.HOUR_OF_DAY,23); c.set(Calendar.MINUTE,59); c.set(Calendar.SECOND,59); //相加减 c.add(Calendar.SECOND, 1); c.add(Calendar.DAY_OF_MONTH,-1); //得到设置的年月日小时分钟秒 int year = c.get(Calendar.YEAR); int month = c.get(Calendar.MONTH)+1; int date = c.get(Calendar.DATE); int hour = c.get(Calendar.HOUR); int minute = c.get(Calendar.MINUTE); int second = c.get(Calendar.SECOND);
4.6 说说你对正则表达式的理解? 通常用在什么地方?
正则表达式: 是用来判断某个字符串是否满足我们设置的某些规则.
通常用在: 开发中进行判断, 替换操作.
相关文章推荐
- java学习之旅67--常用类_Calendar和GregorianCalendar的使用_日期计算
- 计算Java日期 学习怎样创建和使用日期
- java学习笔记11 - 使用forward实现API接口转发
- java使用正则表达式判断手机号,固定电话,身份证,邮箱,url,车牌号,日期,ip地址,mac,人名等
- Java写的手机计费系统(作为学习参考的实例:关键是Java类库里面的date和Calendar的使用和相互转换,以及一些日期的实际问题)
- Android(java)学习笔记193:利用谷歌API对数据库增删改查(推荐使用)
- Java基础-11总结Eclipse使用,API,Object类
- 详解介绍Selenium常用API的使用--Java语言(完整版)
- 【Java学习笔记】使用Collator进行本地化语言的排序
- java学习11--语句:for循环嵌套、转义字符的使用
- JavaSE入门学习32:Java常用类之时间日期相关类
- Hadoop学习笔记:HDFS的java API使用
- Java学习第五周(1)--常用类及 正则表达式
- java--常用类及API的使用大全
- 阶段1 语言基础+高级_1-3-Java语言高级_1-常用API_1_第3节 Random类_9-生成指定范围的随机数...
- ZooKeeper 学习 (四) ZooKeeper Java客户端API使用
- java高级编程学习如何使用打印服务 API
- Java学习笔记11:在公共类中使用访问方法而非公有域
- Java基础班学习笔记(11)API常用类(二)
- 计算Java日期--学习怎样创建和使用日期