02常见对象

常见对象

1.Scanner

A:两个常用的方法:

  • public int nextInt():获取一个int类型的值
  • public String nextLine():获取一个String类型的值

2.String

1:String类的判断功能

  • boolean equals(Object obj):比较字符串的内容是否相同,区分大小写
  • boolean equalsIgnoreCase(String str):比较字符串的内容是否相同,忽略大小写
  • boolean contains(String str):判断大字符串中是否包含小字符串
  • boolean startsWith(String str):判断字符串是否以某个指定的字符串开头
  • boolean endsWith(String str):判断字符串是否以某个指定的字符串结尾
  • boolean isEmpty():判断字符串是否为空。

2:String类的获取功能

  • int length():获取字符串的长度。
  • char charAt(int index):获取指定索引位置的字符
  • int indexOf(int ch):返回指定字符在此字符串中第一次出现处的索引。
  • int indexOf(String str):返回指定字符串在此字符串中第一次出现处的索引。
  • int indexOf(int ch,int fromIndex):返回指定字符在此字符串中从指定位置后第一次出现处的索引。
  • int indexOf(String str,int fromIndex):返回指定字符串在此字符串中从指定位置后第一次出现处的索引。
  • lastIndexOf
  • String substring(int start):从指定位置开始截取字符串,默认到末尾。
  • String substring(int start,int end):从指定位置开始到指定位置结束截取字符串。

3:String的转换功能:

  • byte[] getBytes():把字符串转换为字节数组。
  • char[] toCharArray():把字符串转换为字符数组。
  • static String valueOf(char[] chs):把字符数组转成字符串。
  • static String valueOf(int i):把int类型的数据转成字符串。
    • 注意:String类的valueOf方法可以把任意类型的数据转成字符串。
  • String toLowerCase():把字符串转成小写。
  • String toUpperCase():把字符串转成大写。
  • String concat(String str):把字符串拼接。

3.StringBuffer,Builder

1:StringBuffer的添加功能

  • public StringBuffer append(String str):
    • 可以把任意类型数据添加到字符串缓冲区里面,并返回字符串缓冲区本身
  • public StringBuffer insert(int offset,String str):
    • 在指定位置把任意类型的数据插入到字符串缓冲区里面,并返回字符串缓冲区本身

2:StringBuffer的删除功能

  • public StringBuffer deleteCharAt(int index):
    • 删除指定位置的字符,并返回本身
  • public StringBuffer delete(int start,int end):
    • 删除从指定位置开始指定位置结束的内容,并返回本身

3:StringBuffer的替换功能

  • public StringBuffer replace(int start,int end,String str):

    • 从start开始到end用str替换
  • B:StringBuffer的反转功能

    • public StringBuffer reverse():
      • 字符串反转
  • A:StringBuffer的截取功能

    • public String substring(int start):
      • 从指定位置截取到末尾
    • public String substring(int start,int end):
      • 截取从指定位置开始到结束位置,包括开始位置,不包括结束位置
  • B:注意事项

    • 注意:返回值类型不再是StringBuffer本身
  • A:String – StringBuffer

    • a:通过构造方法
    • b:通过append()方法
  • B:StringBuffer – String

    • a:通过构造方法
    • b:通过toString()方法
    • c:通过subString(0,length);
1.为什么要有 StringBuilder (它和String有什么区别)
		主要用于解决"字符串拼接的问题"
		如果是 String 进行拼接,会产生多余的字符串(垃圾)
		如果是 StringBuilder 底层是数组,全部都在一个数组当中完成.
2.构造方法
		StringBuilder sb = new StringBuilder();  //创建对象
3.成员方法
		sb.append(任意数据类型);  //添加数据(String -> StringBuilder)
		sb.toString(); //得到字符串(StringBuilder -> String)
		sb.reverse();//反转

4.append方法

//创建对象
StringBuilder sb = new StringBuilder();
//添加
sb.append("aaa").append(12).append("adadasas");
System.out.println(sb);//aaa12adadasas

5.toString方法

// 链式创建
StringBuilder sb = new StringBuilder("Hello").append("World").append("Java");
// 调用方法
String str = sb.toString();
System.out.println(str); // HelloWorldJava

6.reverse方法

/*
	(1)定义数字字符串数组{"010","3223","666","7890987","123123"};
	(2)判断该数字字符串数组中的数字字符串是否是对称的,并逐个输出;
	(3)如:010 是对称的,3223 是对称的,123123 不是对称的;
 */
String[] str = {"010","3223","666","7890987","123123"};
for (int i = 0; i <str.length; i++) {
    StringBuilder sb=new StringBuilder(str[i]);
    sb.reverse();
    if(str[i].equals(sb.toString())){
        System.out.println(str[i]);
}
}

7.StringBuffer和StringBuilder的区别

  • A:StringBuilder的概述
    • 通过查看API了解一下StringBuilder类
  • B:面试题
    • StringBuffer是jdk1.0版本的,是线程安全的,效率低
    • StringBuilder是jdk1.5版本的,是线程不安全的,效率高
    • String是一个不可变的字符序列
    • StringBuffer,StringBuilder是可变的字符序列
Integer i13 = 127;
Integer i14 = 127;
System.out.println(i13 == i14);
System.out.println(i13.equals(i14));
System.out.println("-----------");
Integer i7 = 128;
Integer i8 = 128;
System.out.println(i7 == i8);
System.out.println(i7.equals(i8));

true
true
-----------
false
true

4.正则表达式

1:字符类

  • [abc] a、b 或 c(简单类)
  • [^abc] 任何字符,除了 a、b 或 c(否定)
  • [a-zA-Z] a到 z 或 A到 Z,两头的字母包括在内(范围)
  • [0-9] 0到9的字符都包括

2:预定义字符类

  • . 任何字符。
  • \d 数字:[0-9]
  • \w 单词字符:[a-zA-Z_0-9]

3:Greedy 数量词

  • X? X,一次或一次也没有
  • X* X,零次或多次
  • X+ X,一次或多次
  • X{n} X,恰好 n 次
  • X{n,} X,至少 n 次
  • X{n,m} X,至少 n 次,但是不超过 m 次

5.Math

B:成员方法

- public static int abs(int a):绝对值
- public static double ceil(double a):返回大于或等于参数的最小(最接近负无穷大) double- public static double floor(double a):返回小于或等于参数的最大(最接近正无穷大) double- public static int max(int a,int b) min :最大值 和 最小值
- public static double pow(double a,double b):将第一个参数的值返回到第二个参数的幂
- public static double random():返回值为 double值为正号,大于等于 0.0 ,小于 1.0- public static int round(float a)int四舍五入
- public static double sqrt(double a):正平方根 double

6.System

1.currentTimeMillis方法

//获取当前时间毫秒值
System.out.println(System.currentTimeMillis()); // 1543730864843
//验证for循环打印数字1-9999所需要使用的时间(毫秒)
long start = System.currentTimeMillis();
for (int i = 0; i < 10000; i++) {
    System.out.println(i);
}
long end = System.currentTimeMillis();
System.out.println("共耗时毫秒:" + (end - start));//共耗时毫秒:569

2.arraycopy方法

public static void arraycopy(Object src, int srcPos, Object dest,   int destPos, int length)`:将数组中指定的数据拷贝到另一个数组中。

| 参数序号 | 参数名称    | 参数类型   | 参数含义       |
| ---- | ------- | ------ | ---------- |
| 1    | src     | Object | 源数组        |
| 2    | srcPos  | int    | 源数组索引起始位置  |
| 3    | dest    | Object | 目标数组       |
| 4    | destPos | int    | 目标数组索引起始位置 |
| 5    | length  | int    | 复制元素个数     |
/*  将src数组中前3个元素,复制到dest数组的前3个位置上复制元素前:
    src数组元素[1,2,3,4,5],
     dest数组元素[6,7,8,9,10]*/
int[] src = new int[]{1,2,3,4,5};
int[] dest = new int[]{6,7,8,9,10};
System.arraycopy( src, 0, dest, 0, 3);
for (int a:dest)
    System.out.print(a+" ");//1 2 3 9 10 

7.Date

A.构造方法
	a.无参构造 Date()
	b.全参构造 Date(long)
B.成员方法
	a.存值 void setTime(long)
	b.取值 long getTime()
// 创建日期对象,把当前的时间
System.out.println(new Date()); // Sat Dec 01 10:51:04 CST 2018
// 创建日期对象,把当前的毫秒值转成日期对象
System.out.println(new Date(0L)); // Thu Jan 01 08:00:00 CST 1970
Date da = new Date(0L);
da.setTime(System.currentTimeMillis());
System.out.println("da = " + da);//da = Sat Dec 01 10:51:04 CST 2018
System.out.println(da.getTime());//1543720044643

8.SimpleDateFormat

SimpleDateFormat 简单日期格式化

 标识字母:y  M  d  H  m s
  含义:	年 月 日 时 分 秒
A.成员方法
a.将日期转换为字符串
 Date -> String  String format(Date)
b.将字符串转换为日期
 String -> Date  Date parse(String)
//Date -->String
 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
 Date da = new Date();
 System.out.println(sdf.format(da));//2018-12-02 11-18-34
//String ->Date
 SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒");
 System.out.println(sdf2.parse("2018年2月5日12时45分12秒"));//Mon Feb 05 12:45:12 CST 2018

8.Calendar

| 字段值          | 含义                   |
| ------------ | -------------------- |
| YEAR         ||
| MONTH        | 月(从0开始,可以+1使用)       |
| DAY_OF_MONTH | 月中的天(几号)             |
| HOUR         | 时(12小时制)             |
| HOUR_OF_DAY  | 时(24小时制)             |
| MINUTE       ||
| SECOND       ||
| DAY_OF_WEEK  | 周中的天(周几,周日为1,可以-1使用) |
    
 西方星期的开始为周日,中国为周一
 在Calendar类中,月份的表示是以0-11代表1-12
常用方法:
 	public int get(int field)
	返回给定日历字段的值。
	public void set(int field, int value)
	将给定的日历字段设置为给定值。
	public abstract void add(int field, int amount)
	根据日历的规则,为给定的日历字段添加或减去指定的时间量。
	public Date getTime()
	返回一个表示此Calendar时间值(从历元到现在的毫秒偏移量)的Date对象。

1.get/set方法

// 创建Calendar对象
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR,2018);//设置年
cal.set(Calendar.MONTH,12-1);//设置月 12月
cal.set(Calendar.DAY_OF_MONTH,1);//设置日
System.out.println(cal.getTime());
int a =cal.get(Calendar.DAY_OF_WEEK)-1;//赋值星期
System.out.println(a);//打印6

2.add方法

Calendar cal = Calendar.getInstance();
// 使用add方法
cal.add(Calendar.DAY_OF_MONTH, 2); // 加2天
cal.add(Calendar.YEAR, -3); // 减3年
//设置年
int year = cal.get(Calendar.YEAR);
// 设置月
int month = cal.get(Calendar.MONTH) + 1;
// 设置日
int dayOfMonth = cal.get(Calendar.DAY_OF_MONTH);
System.out.println(year + "年" + month + "月" + dayOfMonth + "日"); //2015年12月4日

3.getTime方法

Calendar cal = Calendar.getInstance();
Date date = cal.getTime();
System.out.println(date); // Tue Jan 16 16:03:09 CST 2018
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值