1、字符串处理
字符串:关于字符串的序列(CharSquence),就是用双引号""引起来的内容
String :字符串的常量,常量指值的地址。
String str="123";
str="456"; //相当于重新定义了一个字符串
1、字符串常用方法回顾:
length() //字符串长度;
subString(a,b) //从下标[a,b)截取字符串
repalace("a","b") //字符串替换
charAt(index) //返回索引位置字符
toCharArray() //返回字符数组
trim() //去左右空格
toLowerCase() //字母全部小写
toUpperCase() //字母全部大写
cotains("a") //模糊查询:判断字符串是否包含字符串"a",返回一个布尔值
等等……
加强版字符串:字符串变量
StringBuilder:一般用来进行字符串的大量添加、删除和修改。
StringBuffer:
总结:
一般用于操作少量字符串数据,字符串常量,效率较低。
String
一般用来操作大量字符串数据,字符串变量,效率较高。
StringBuilder:异步处理,线程不安全,速度快。
StringBuffer:同步处理,线程安全,速度慢。
添加:append(String str)
删除: deletCharAt(int index) 或 deletCharAt(int start,int end)
修改: setCharAt(int index)
插入: insert(int index,String str)
反转: reverse()
2、Date时间类型
日期类型:Date() 获取系统默认时间
Date date=new Date();
date.toString() //可直接输出本地时间
date.getTime() //获取距格林尼治1970年1月1日0时0分0秒的毫秒数
1、自定义时间格式
//自定义日期格式 yyyy MM dd HH mm ss
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
String formatDate = sdf.format(date);
System.out.println(formatDate); //2019年07月22日 15时55分11秒
2、将指定格式的字符串转换为时间类
//将字符串替换为日期类型
String strDate = "2019年07月22日 15时55分11秒";
Date myDate = sdf.parse(strDate); //转换的时候字符串格式要和定义的格式完全一致
System.out.println(sdf.format(myDate));
//将字符串转换为时分秒
SimpleDateFormat sdf1 = new SimpleDateFormat("HH:mm:ss");
String timeStr = "13:12:13";
Date myTime = sdf1.parse(timeStr);
System.out.println(timeStr);
3、Calendar日历类(单例模式)
1、获取Calendar对象的方式:
//常量:static static int…… 常量名全是大写的
Calendar cal=Calendar.getInstance();
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class CalendarTest {
public static void main(String[] args) {
//得到一个日历对象
Calendar cal = Calendar.getInstance();
//设置时间 0-11代表1-12月
cal.set(2020,6,30);
//40天后对应日期 通过毫秒数设置40天后的日期
cal.setTimeInMillis(cal.getTimeInMillis() + (40 * 24 * 3600 * 1000L));
System.out.println(cal.get(Calendar.YEAR));
System.out.println((cal.get(Calendar.MONTH) + 1));
System.out.println(cal.get(Calendar.DAY_OF_MONTH));
System.out.println(cal.get(Calendar.HOUR_OF_DAY));
System.out.println(cal.get(Calendar.MINUTE));
System.out.println(cal.get(Calendar.SECOND));
System.out.println((cal.get(Calendar.DAY_OF_WEEK) - 1));//星期从周日开始计算
//当前月份的最大天数
cal.getMaximum(Calendar.DAY_OF_MONTH);
//日历转换为日期类
Date date = cal.getTime();
//格式化输出
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
System.out.println(sdf.format(date));
}
}
4、数学类(Math)
数学工具类(静态方法)
1、求根 Math.sqrt();
2、随机数 Math.random();
3、绝对值 Math.abs();
4、幂函数 Math.pow(a,b) a^b
5、四舍五入 Math.round(0.45); //返回一个long类型整数 0
6、向上取整 Math.ceil(1.00001); //结果是2
7、向下取整 Math.floor(9.9999); //结果是9
8、圆周率 Math.PI;
5、随机类
Random ra=new Random();
ra.nextInt(10) [0,10)随机整数
ra.nextDouble() [0,1)随机小数
ra.nextFloat() [0,1)随机小数
ra.nextBoolean() 随机产生true或false
6、BigDecimal() 高精度数据
三种构造
方法一:
BigDecimal big1=new BigDecimal(0.1); //不推荐使用 无限接近与0.1并不是完全等于0.1
方法二:
BigDecimal big2=new BigDecimal("0.1");
方法三:
BigDecimal big3=new BigDecimal(整数);
//四则运算
System.out.println(big1.add(big2));//加法
System.out.println(big1.subtract(big2));//减法
System.out.println(big1.multiply(big2));//乘法
System.out.println(big2.divide(big3));//除法