JDK API常见对象 Arrays类、Integer类、String的转换、自动装箱、Pattern类、正则表达式、Math类、random类、BigInteger类、Date、Calendar日历

Arrays类

该类包含用于操作数组的各种方法(如排序和搜索)。

Arrays类的toString方法

可以把各种类型的数组按[1, 2, 3, 4, 6, 7]这种格式输出。

基本数据类型包装类

基本数据类型(int、char等)是不能创建对象调用方法的,有了封装类就可以调用封装方法使用。

Integer类

包装一个对象中的原始类型int的值。
此外,该类还提供了一些将int转换为String和String转换为int ,以及在处理int时有用的其他常量和方法。
String line = sc.nextLine ();//获取键盘输出新行
int x = Integer. parseInt (line);将数字字符串转换成int数字

String和基本数据类型的转换

int a = String.valueof(i);//valueof可以把任何类型转换成string类型。

        String s = "44";
        byte b = Byte.parseByte(s);
        short sh = Short.parseShort(s);
        int i = Integer.parseInt(s);
        long l = Long.parseLong(s);
        double d = Double.parseDouble(s);
        char ch[] = s.toCharArray();

自动装箱、自动拆箱

JDK1.5以后的特性
自动装箱意思是把基本数据类型自动转换成对象。
自动拆箱意思是把对象自动转换成基本数据类型,体现在Integer对象可以直接和int数字相加。

思考题:

        Integer i1 = -128;
        Integer i2 = -128;
        System.out.println(i1 == i2);
        System.out.println(i1.equals(i2));

        Integer i3 = 128;
        Integer i4 = 128;
        System.out.println(i3 == i4);
        System.out.println(i3.equals(i4));

运行结果:
true
true
false
true
当integer直接值的范围是在-128到127之间(byte的取值范围),不会创建多个对象。
第一次Integer=-128,会在底层有一个数组存储-128到127之间的Integer对象值
第二次Integer =-128,不会重新创建对象,继续从数组中获取。

Pattern类

正则表达式的编译表示,典型用法:

 Pattern p = Pattern.compile("a*b");//获取正则对象,a出现0到多次,b出现一次
 Matcher m = p.matcher("aaaaab"); //格式匹不匹配(获取匹配器)
 boolean b = m.matches(); 

也可以这样用:

 boolean b = Pattern.matches("a*b", "aaaaab");

正则表达式

也叫规则表达式,用来代表字符串的格式。

加号+代表前面的字符必须至少出现一次(1次或多次)。
星号*代表前面的字符可以不出现,也可以出现一次或者多次(0次、或1次、或多次)。
问号?代表前面的字符最多只可以出现一次(0次、或1次)。

{n}表示前面的字符重复出现n次。
{n,}表示前面的字符至少n次。
{n,m}表示前面的字符至少出现n次,但不超过m次。

.表示任何字符
(.)表示字符串中单个子字符串(子字符)。

[]表示的是单个字符。
[abc]表示a、b或c。
[a-zA-Z]表示a到z或A到Z。
[^abc]表示除了a b c的任何字符。

\d数字:[0-9]
\D非数字:[^0-9]
\s空白字符:[ \t \n \x0B \f \r]
\S非空白字符:[^\s]
\w单词字符:[a-zA-2_0-91
\W非单词字符:[^\w]
(在字符串中‘\’是转义字符,所以使用正则表达式时要打两次\,例如\w)

利用正则表达式就可以方便地对字符串做分割split 、替换replaceAll、replaceFirst、分组等处理。

PS: 判断格式是否匹配:matches

Math类

包含执行基本数字运算的方法

math类的ceil方法、round方法和floor方法

都是取整:ceil向上取整,floor向下取整,round四舍五入。
都返回的是double类型。
在这里插入图片描述

math类的random方法

生成随机数,0.0-1.0之间。这个方法用于生成随机数比较简单方便。

random类

随机数生成器。
构造方法:Random(long seed) 使用单个 long种子创建一个新的随机数生成器
如果用相同的种子创建两个random实例,这两个实例生成的随机数是一样的。

Random r = new Random();
System.out.println(r.nextInt());//生成的随机数范围在int取值范围中
System.out.println(r.nextInt(10));//生成的随机数范围在10中

Random r1 = new Random(111);
System.out.println(r1.nextInt());//生成的随机数范围在int取值范围中

运行结果:最下面的值是不变的。
在这里插入图片描述

BigInteger类

可以让超过int范围的值的数进行运算(加减乘除)。
divideAndRemainder(BigInteger val)
返回两个BigInteger的数组,其中包含 (this / val)后跟 (this % val) (商和余数)

BigDecimal类

可以用来使小数运算更精确,不可变的,任意精度的有符号十进制数。

Date类

        Date D1 = new Date();//创建当前时间
        System.out.println(D1);
        Date D2 = new Date(1000);//根据指定毫秒值创建当前时间
        System.out.println(D2);
        //获取当前时间的毫秒值
        System.out.println(D1.getTime());
        System.out.println(System.currentTimeMillis());

运行结果:
因为系统所在时区是东八区,所以是八点。
在这里插入图片描述

DateFormat类

设置想要的时间显示格式。

Date  d = new Date();
DateFormat df = DateFormat.getDateInstance();//返回DateFormat的子类对象
SimpleDateFormat sdf = new SimpleDateFormat();
SimpleDateFormat sdf1 = new SimpleDateFormat("yyy/MM/dd EE");

System.out.println(d);
System.out.println(df.format(d));
System.out.println(sdf.format(d));
System.out.println(sdf1.format(d));

在这里插入图片描述
在这里插入图片描述

Calendar类

Calendar类是抽象类,不能直接创建对象。通过调用getInstance()来创建。

        Calendar calendar = Calendar.getInstance();
        int Year = calendar.get(Calendar.YEAR);
        System.out.println(Year);

        calendar.add(Calendar.YEAR,-1);
        System.out.println(calendar.get(Calendar.YEAR));
        calendar.set(Calendar.YEAR,2000);
        System.out.println(calendar.get(Calendar.YEAR));

运行结果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43580841/article/details/107367988