11.2常用类(Arrays类,Bigdecimal类,BigInteger类,System类,Calendar类,Date类,Math类,Random类,正则表达式)

一、Arrays

1)数组工具类,由sun公司提供的官方文档中已经声明的类(底层已经实现了一些功能:java开发者只是纯粹的调用就可以了)

2)常用方法:

publicstatic String toString(int[] a)将数组转换成字符串

publicstatic void sort(int[] a)int类型的数组进行排序(升序),底层是一种快速排序法

publicstatic int binarySearch(int[] a,int key)二分查找法

 

二、BigDecimal

1)由于float类型以及double类型:浮点类型在存储数据的时候和整数类型是不一样的,存储的是有效位数字,浮点类型容易损失精度,导致数据的不精确,针对这种情况,java就提供了BigDeicmal类:(作用:运算数据的时候更加精确)

2)构造方法:

public BigDecimal(String val)

3)成员方法:

public BigDecimal add(BigDecimal augend)

public BigDecimal subtract(BigDecimal subtrahend)

public BigDecimal multiply(BigDecimal multiplicand)

public BigDecimal divide(BigDecimal divisor)

public BigDecimal divide(BigDecimaldivisor,int scale,RoundingMode,roundingMode)参数1:表示除数       参数2:取的有效数字       参数3:舍入的一种模式

 

三、BigInteger

1)用来计算超出int范围的数据的运算

2)常用的构造方法:

public BigInteger(String val)以字符串的形式表现一个十进制数据

3)常用的方法:

public BigInteger add(BigInteger val)

public BigInteger subtract(BigInteger val)

public BigInteger multiply(BigInteger val)

public BigInteger divide(BigInteger val)

public BigInteger[]divideAndRemainder(BigInteger val)返回的是数组(商和余数)

应用举例:

BigIntegerb1 = new BigInteger("100");

BigIntegerb2 = new BigInteger("50");

BigInteger[]bi = b1.divideAndRemainder(b2);

System.out.println("bi[0]:"+bi[0]);//2

System.out.println("bi[0]:"+bi[1]);//0

 

四、System

1)概述:System 类包含一些有用的类字段和方法。它不能被实例化。

创建键盘录入对象:

Scannersc = new Scanner(System.in);

InputStream(字节输入流) is = System.in ; //抽象类的多态形式

System.out.println();输出语句

System.out:标准输出流返回的是一个打印输出流:PrintStream------>对象.println()

2)常用的方法:

public static void gc()运行垃圾回收器,最终调用的是finalize()方法

final,finalize,finally(异常类的时候讲它:是用来释放资源的)的区别?(重点)

final:最终的,无法更该的,可以修饰类,成员变量,成员方法。

修饰类,该类不能被继承

修饰成员方法,该方法不能被重写

修饰成员变量,该变量是常量,属于自定义常量

fianlize:和垃圾回收器有关系,当内存中存在不用的对象的时候,启用gc()运行垃圾回收器去回收对象,释放资源,最终调用的还是finalize()(在自定义的类中一定要写Object中的方法)

3)其他方法:

public static void exit(int status)表示终止当前正在运行的java虚拟机,0状态,表示异常终止,一般情况:参数为0

举例:System.out.println("我喜欢运动....");

System.exit(0) ;//应用场景:也会用在循环语句中

System.out.println("我也喜欢音乐....");

运行结果:我喜欢运动....

public static long currentTimeMillis()返回以毫秒为单位的当前时间

单独使用,非常少,一般用在记录耗时的操作:循环语句

4)常用方法:复制数组

public static void arraycopy(Object src,int srcPos, Object dest, int destPos,int length)

从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束

举例:int[] arr ={11,22,33,44,55} ;

int[] arr2 = {6,7,8,9,10} ;      

System.arraycopy(arr, 1,arr2, 2, 2);

System.out.println("arr:"+Arrays.toString(arr));

System.out.println("arr2:"+Arrays.toString(arr2));

运行结果:arr:[11, 22, 33, 44, 55]

arr2:[6, 7, 22, 33, 10]

 

五、Calendar

1)日历类,Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEARMONTHDAY_OF_MONTHHOUR 日历字段之间的转换提供了一些方法

瞬间指定的是一个毫秒值

2)由于Calendar是抽象类:

 public static CalendargetInstance()通过这个方法进行实例化:抽象类多态

public int get(int field)返回给定日历字段的值

3)字段:

publicstatic final int YEAR:年份

publicstatic final int MONTH在格里高利历和罗马儒略历中一年中的第一个月是JANUARY,它为 0;最后一个月取决于一年中的月份数。

publicstatic final int DATE:月份中的某天

4)和日历有关的添加的方法:

publicabstract void add(int field,int amount):根据日历的规则,为给定的日历字段添加或减去指定的时间量

publicvoid set(int field int value)将给定的日历字段设置为给定值

5)程序测试:获取任意一年的二月有多少天,使用键盘录入改进

importjava.util.Calendar;

importjava.util.Scanner;

publicclass CalendarTest {

      public static void main(String[] args) {

           //创建键盘录入对象

           Scanner sc = new Scanner(System.in);

 

           //录入并接收数据

           System.out.println("请输入一个年份:");

           int year = sc.nextInt() ;

          

           //创建日历类对象

           Calendar c = Calendar.getInstance() ;

          

           //去给日历对象设置日历时间

           c.set(year, 2, 1);//其实31

          

           //在使用add指定时间量,往前推一天

           c.add(Calendar.DATE, -1) ;

          

           //输出即可

           System.out.println(c.get(Calendar.DATE));

      }

}

 

六、Date

1)日期类,表示特定的瞬间,精确到毫秒。

2)构造方法:

public Date()空参构造(使用这个获取系统当前的日期时间)

public Date(long date)指定一个时间毫秒值

3)两个常用的成员方法:

public long getTime()获取自197011日的表示Date对象的一个毫秒数

public void setTime(long time)指定一个毫秒数

如果用Date对象获取时间毫秒值getTime():获取当前的时间毫秒值,一般用System.currentTimeMillis(),替换掉它

如果给Date对象指定一个毫秒值时间用:setTime()

4Date(Date对象)String(日期的字符串类型)类型的相互转换(重点)

Date---->String:格式化(也就是日期 -> 文本)

DateFormat:但是该类是一个抽象类,不能直接实例化,所以不能直接使用它进行中间桥梁的转换!就用DateFormat的子类:SimpleDateFormat:格式化和解析日期或者解析时间的具体类;

SimpleDateFormat

两个构造方法;

publicSimpleDateFormat():无参构造:使用默认的模式构造一个对象

publicSimpleDateFormat(String pattern):将一个 Date 格式化为日期/时间字符串指定一种模式;可以写xxx年xx月xx日 、 xxxx-xx-xx

方法(继承自DateFormat类):

publicfinal String format(Date date)将一个 Date 格式化为日期/时间字符串。

String(字符串的日期/时间的表现形式)---->Date对象:解析(文本-> 日期)

使用SimpleDateFormat类的另一个方法:(继承自DateFormat类)

publicDate parse(String source)该方法会抛出一个异常:解析异常:parseException

这个转换里面的字符串的内容必须和模式的内容一致,否则抛异常!

【日期和时间模式】

年:                        y             例如:2017                yyyy

年中的月份:          M                  8,11                   MM

月份中的天数:       d                 24,25                    dd

小时:                   H                                             HH

分钟数                m                                            mm

秒数                      s                                               ss

 

七、Math

1)该类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数

2)字段:

publicstatic final double E

publicstatic final double PI

3)常用的成员方法:

publicstatic int abs(int a)绝对值

publicstatic double ceil(double a)向上取整(重点)

publicstatic double floor(double a)向下取整

publicstatic double pow(double a,double b)ab次幂

publicstatic double random()获取一个随机数:[0.0,1.0)(重点)

publicstatic long round(double a)四舍五入,取整(重点)

publicstatic int max(int a, int b)取最大值

publicstatic double sqrt(double a)正平方根

 

八、Random

1)表示产生一个随机的类:

2)构造方法:

publicRandom():无参构造,创建一个产生随机数的类对象,就是用构造形式

publicvoid setSeed(long seed):指定一个种子,这个种子(时间的毫秒值)

3)成员方法:(重要)

nextInt():产生的随机数的范围在int类型的范围之内

nextInt(intn):删除的随机的范围在[0,n),能包括0不包括n这数据

 

九、正则表达式

常见的语法:

A:字符

x字符   举例:a代表'a'

\\         反斜线字符             代码中:两个反斜线表示一个反斜线

\t         制表符

\n        新行(换行)符

\r         回车符

B:字符类

[abc]         ab c

[^abc]       任何字符,除了 ab c(否定) 

[a-zA-Z]      a z A Z,两头的字母包括在内(范围)

C:预定义字符类

.          如果本身表示的就是一个.,怎么办? \.:表示点(代码中写正则表达式的时候:\\.)

\d        数字:[0-9]

\w       单词字符:[a-zA-Z_0-9] :举例邮箱zhangsan_isSone123456@163.com

D:边界匹配器

\b        单词边界:hello;world;haha;Xixi

^         以什么开头        ^0     :表示以0开头

$          以什么结尾

E:Greedy 数量词(重点)

X?,x出现1次或者0

X*,x出现了0次或多次

x+,x出现了1次或多次

x{n}:x恰好出现n

x{n,}:x至少出现了n

x{n,m}:x至少n,不超过m

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Arrays中提供了很多常用的方法,下面列举一些比较常用的: 1. sort()方法:用于对数组进行排序,默认是升序排序,也可以传入一个Comparator对象以实现自定义排序。 2. binarySearch()方法:用于在已排序的数组中查找指定元素,如果找到了返回该元素的索引值,否则返回负数。 3. equals()方法:用于比较两个数组是否相等。 4. fill()方法:用于将数组中的所有元素都赋成同一个值。 5. copyOf()方法:用于复制一个数组,可以指定复制的长度,如果原数组长度不够,则用默认值补齐。 6. asList()方法:将数组转换为一个List对象。 7. toString()方法:将数组转换为一个字符串,方便输出和打印。 示例代码如下: ```java int[] arr = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3}; //排序 Arrays.sort(arr); System.out.println(Arrays.toString(arr)); //[1, 1, 2, 3, 3, 4, 5, 5, 6, 9] //查找 int index = Arrays.binarySearch(arr, 6); System.out.println("6的索引值为:" + index); //输出:6的索引值为:8 //比较 int[] arr1 = {1, 2, 3}; int[] arr2 = {1, 2, 3}; boolean isEqual = Arrays.equals(arr1, arr2); System.out.println("arr1和arr2是否相等:" + isEqual); //输出:arr1和arr2是否相等:true //赋值 Arrays.fill(arr, 0); System.out.println(Arrays.toString(arr)); //[0, 0, 0, 0, 0, 0, 0, 0, 0, 0] //复制 int[] arr3 = Arrays.copyOf(arr, 5); System.out.println(Arrays.toString(arr3)); //[0, 0, 0, 0, 0] //转换为List List<int[]> list = Arrays.asList(arr); System.out.println(list.size()); //输出:1 //转换为字符串 String str = Arrays.toString(arr); System.out.println(str); //[0, 0, 0, 0, 0, 0, 0, 0, 0, 0] ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值