1.基本数据类型的包装类
装箱:自动将基本数据类型转为包装类型
拆箱:自动将包装类型转为基本数据类型
基本类型 | 包装类类型 |
byte | Byte |
char | Character |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
boolean | Boolean |
以int为例:
// int--->Integer
Integer i1 = new Integer(1);
Integer i2 = Integer.valueOf(10);
// Integer--->int
int i3 = i1.intValue();
// String--->int
int i4 = Integer.parseInt("123");
// int--->String
String string=i4+"";
// String--->Integer
Integer i5 = Integer.valueOf("456");
// Integer--->String
String str=i1.toString;
2.String类
主要包括:String、StringBuilder、StringBuffer
a.String的常用方法:
String s1 = "qwer";
// 1 char chatAt(int index) : 获取字符串中,某个位置上的字符,相当于 arr[index]
char c1 = s1.charAt(2);
System.out.println(c1);
// 2 endsWith(String suffix) : 判断字符串是否以指定字符串结尾
// startsWith(String prefix) 判断开始
System.out.println("Hello.java".endsWith(".java")); // true
System.out.println("Hello.java".endsWith(".java ")); // false 注意 空格
// 3 equalsIgnoreCase(String anotherString) : 不区分大小写比较两个字符串是否相等
System.out.println("abc".equals("ABC"));
System.out.println("abc".equalsIgnoreCase("ABC"));
// 4 getBytes(); : 把字符串转换为字节数组
byte[] bytes = "abc".getBytes();
for (byte b : bytes) {
System.out.println(b);
}
// 5 indexOf(String str) : 获取指定字符串的起始索引,找不到就返回-1
System.out.println("cniuhaushd213hxhdd2".indexOf("d2")); // 9
// 6 indexOf(String str,int fromIndex) : 从指定位置开始查找,找不到返回-1
System.out.println("cniuhaushd213hcxhdd2".indexOf("c", 1));// 14
// 7 lastIndexOf(String str) : 最后一次出现位置的索引,找不到返回-1
System.out.println("cniuhaushd213hcxhdd2".lastIndexOf("c"));// 14
// 8 length() : 获取字符串长度
System.out.println("abc".length());
// 9 replaceAll(String regex,String replacement) : 把指定字符换为指定字符
/**
* 还有一个方法 replace 这两个功能一样,只不过 replaceAll 支持正则表达式
*/
System.out.println("12h,dha!sioh@#213!23><".replaceAll("[^0-9a-zA-Z]", ""));// a23a4a52
// 10 split(String regix) : 分割字符串,需要指定分隔符,返回值是字符串数组,支持正则表达式
String myTime = "2008,08,08";
// 如果是 以 .分割,需要 \\. 因为split支持正则表达式,而 . 在正则表达式中有特殊含有,所以需要转义
// 在正则表达式中,通过 \. 对 . 进行转义,但是 \ 在java中也是 转移符,所以 需要 \\.,来转义 \
String[] ymd = myTime.split(",");
for (String string : ymd) {
System.out.println(string);
}
// 11 substring(int begin) : 获取该字符串以某个下标(包含该下标)开始截取余下的子字符串
System.out.println("abcdefg".substring(2));// cdefg
// 12 substring(int beginIndex,int endIdex); :
// 以某个下标开始(包含),到某个下标结束的子字符串(不包含)
System.out.println("abcdefg".substring(2, 6));// cdef
// 13 toCharArray() : 转换为char数组
char[] c2 = "qwer".toCharArray();
for (char c : c2) {
System.out.println(c);
}
// 14 转大写和小写
System.out.println("asdUId".toUpperCase());// 大写
System.out.println("asdUId".toLowerCase());// 小写
// 15 trim() : 去除字符串首尾的空格
System.out.println(" 1 dcz s ".trim());
// 16 valueOf(Object obj) : 调用对象的toString方法,并处理null值
b.StringBuffer和StringBuilder:是可变的字符串缓冲区,可以自动扩容
两者的区别:
StringBuffer:线程安全,在多线程下不会出问题,常用于类中;
StringBuilder:非线程安全,多线程下,可能会出问题,常用方法中;其次运行速度最快
3.Math类
// abs:绝对值
System.out.println(Math.abs(-10));//10
// ceil:向上取整
System.out.println(Math.ceil(2.4));//3.0
// floor:向下取整
System.out.println(Math.floor(2.4));//2.0
// sqrt:开平方
System.out.println(Math.sqrt(4));//2.0
// cbrt:开立方
System.out.println(Math.cbrt(8));//2.0
// random:随机数(0-1)
System.out.println(Math.random());//0.5240869750300419
// rint:四舍五入,小于xxx.5的时候取偶数
System.out.println(Math.rint(2.4));//2.0
System.out.println(Math.rint(2.6));//3.0
Random随机数:从0开始,到指定的数进行随机生成
Random r = new Random();
// 从0-10(不包含10)随机生成
int random = r.nextInt(10);
4.Date类
Date date = new Date();
// 传入一个日期模板字符串
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
// 对日期格式化
String cTime = sdf.format(date);
// String类型转Date类型
String str = "2020年07月15日 14:47:54 841";
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd天 HH:mm:ss SSS");
Date date2 = sdf2.parse(str);
// 日历
// 获取当前日历
Calendar c = Calendar.getInstance();
// System.out.println(c);
// 获取今天是本周的第几天,周日是第一天
System.out.println(c.get(Calendar.WEEK_OF_MONTH));
// 今天是本月第几天,也就是多少号
System.out.println(c.get(Calendar.DAY_OF_MONTH));
// 获取月,范围是0~11 所以 获取到之后 +1 就是当前月份
System.out.println(c.get(Calendar.MONTH) + 1);
// 获取年
System.out.println(c.get(Calendar.DAY_OF_YEAR));
// 获取 时 12小时
System.out.println(c.get(Calendar.HOUR));
// 24小时
System.out.println(c.get(Calendar.HOUR_OF_DAY));
// 获取指定时间的日历
String str2 = "2021.3.15";
Date date3 = new SimpleDateFormat("yyyy.MM.dd").parse(str2);
c.setTime(date3);
System.out.println(c.get(Calendar.DAY_OF_MONTH));