JavaSE(五)
一、常用Arrays工具类
- 排序
Arrays.sort(arr)
- 寻找某元素的下标(二分法)
//找5在数组中的下标,没有则返回-1
Arrays.binarySearch(arr,5)
二、String相关常用的方法
- 构造方法1
byte[] bytes = {97,98,99};
String s1 = new String(bytes);
//String(字节数组,数组元素下标的起始位置,长度)
String s2 = new String(bytes,1,2);//bc
char[] chars = {'我','是','中','国','人'};
String s4 = new String(chars);
//String(char数组,起始下标,长度)
String s5 = new String(chars,2,3)//中国人
- .charAt()
char c = "中国人".charAt(1)//国
- compareTo()
//比较第一个不一样的字符,能看出来谁打谁小
int result = "abc".compareTo("abc");//0
int result2 = "abcd".compareTo("abce");//-1
int result3 = "abce".compareTo("abcd");//1
- contains()
//判断前面的字符串是否包含后面的字符串
"HelloWorld".contains("Hello");//true
- endsWith()和startsWith
//判断字符串是否以某个字符串开始
"HelloWorld".startsWith("Hello");//true
//判断字符串是否以某个字符串结尾
"HelloWorld".endsWith("World");//true
- equalsIgnoreCase()
//忽略大小写
"ABC".equalsIgnoreCase("abc");//true
- getBytes()
//将字符串转换成字节数组
"abcdef".getBytes();//['a','b','c','d','e','f']
- indexOf()和lastIndexOf()
//判断某个字符串在当前字符串中第一次出现处的索引
"HelloWorld".indexOf("ello");//1
//判断某个字符串在当前字符串中最后一次出现处的索引
"java.java".lastIndexOf("java");//5
- isEmpty()
//判断某个字符串是否为空
"".isEmpty();//true
- .length()
//字符串的长度
"abc".length();//3
- replace
//替换指定字符串
"name=zhangshan&password=123".replace("=",":")//name:zhangsan&password:123
- .split()
//拆分字符串
"1990-10-11".split("=");//["1999","10","11"]
- substring()
//截取字符串
"helloworld".substring(3);//loworld
//不包含5
"helloworld".substring(3,5);//lo
- toCharArray()
//将字符串转成一个char数组
"我是中国人".toCharArray();//['我','是','中','国','人']
- toLowerCase()和toUpperCase()
//将字符串转换成小写
"ABc".toLowerCase();//abc
//将字符串转换成大写
"abC".toLowerCase();//ABC
- trim()
//去除前后空白
" helloworld ".trim();//helloworld
- valueOf();
//将内容转成字符串
int i = 1223;
String.valueOf(i);//"1223"
//会调用对象的toString方法
String.valueOf(new Student());
- StringBuffer 线程安全的
//创建一个容量为16的byte[]数组(字符串缓冲区)
StringBuffer stringBuffer = new StringBuffer();
//追加字符串,
stringBuffer.append("a");
stringBuffer.append("b");
stringBuffer.append("123");
//如果数组满了,会自动扩容
stringBuffer.append("c");
System.out.println(stringBuffer);//ab123c
//Stirng底层也是byte[]数组,但是final修饰不可变,不会被释放
//最好给定初始化容量,减少数组扩容次数
StringBuffer stringBuffer = new StringBuffer(100);
- StringBuilder 非线程安全的
三、Integer
- 通过包装类常量,来获取最大值和最小值
Integer.MAX_VALUE;//2147483647
Integer.MIN_VALUE;//-2147483647
- ==不会触发自动拆箱机制,只有运算的时候会自动拆箱
- java为了提高程序效率,把[-128到127]之间的所有的包装对象提前创建好,放在了方法区“整数型常量池”中
- inValue()手动拆箱
- parseInt
//将string转成int
Ingeter.parseInt("123");
- 进制转换方法
//转二进制
Integer.toBinaryString(3);//11
//转十六进制
Integer.toHexString(17);//11
//转八进制
Integer.toOctalString(9);//11
- Sting、int和Integer互相转换
四、日期常用方法
- SimpleDateFormat类
//创建一个日期格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
//将日期对象转换成符合格式的字符串对象
sdf.format(new Date());
//将符合格式的字符串对象转换成日期对象
sdf.parse("2008-08-08 08:08:08 888")
- System.currentTimeMillis()
//获取自1970年1月1日 00:00:00 000到当前系统时间的总毫秒数
long nowTimeMillis = System.currenTimeMillis();
3.Date()有参构造
//参数是自1970年1月1日 00:00:00 000以来的毫秒数
new Date(1);
//获取昨天此时此刻的时间
new Date(System.cuurentTimeMillis()-1000*60*60*24);