String类
-
String是一个引用类型,其本身就是一个class,但String不能被继承,原因是String类的的定义是final类.
-
字符串比较需要用equals,==比较的是引用,虽然java在编译时会将相同的字符串当做一个对象放入常量池,此时字符串的引用相同,但要比较字符串必须总是调用equals方法.
-
String常用方法
contains(String s);//是否包含子字符串s indexOf(String s);//返回子字符串s第一次出现的位置下标 lastIndextOf(String s);//返回子字符串s最后一次出现的位置下标 starsWith(String s);//否以字符串s开始 endWith(String s);//否以字符串s结束 substring(int s);//提取从下标先开始的子字符串 substring(int start, int end);//提取从下标start开始到end-1的子字符串 trim();//去除首尾空格 strip();//去除首尾空格但类似中文的空格\u3000也会被移除 isEmpty();//判断字符串是否为空 isBlank();//判断字符串是否为空白字符串 replace(char a,char b);//将所有的字符a换成b replace(String a,String b);//将所有子字符串a换成b split(String regex);//以正则表达式regex为分隔符分割字符串 join(String s,String[] arr);//用指定的字符串连接指定的字符串数组 formatted();//格式化字符串 format();//格式化字符串
-
类型装换
- 将基本类型或引用类型转换为字符串,调用String的静态方法valueOf
- 将字符串转换为其他类型,调用相应类型的类方法,如Integer.parseInt(“1234”);
- 转换为char数组,调用方法toCharArray();
StringBuilder与StringBuffer类
StringBuilder是一个可变对象,可预分配缓冲区,可高效拼接字符串,调用append()方法进行拼接,StringBuilder还可以进行链式操作,因为其append方法会返回实例本身.
StringBuffer是StringBuilder早期的一个线程安全版本,可以保证多个线程操作StringBuffer也是安全的,但是也相应的带来效率变低
Math类
-
Math类主要用来进行数学计算,它提供了大量的静态方法让我们用来实现数学计算
-
常用方法
abs(-7);//求绝对值 max(a,b);//取最大值 min(a,b);//取最小值 pow(a,b);//计算a的b次方 sqrt(a);//计算根号a exp(a);//计算e的a次方 log(a);//计算以e为底的对数 log10(a);//计算以10为底的对数 //三角函数 sin(a); cos(a); tan(a); asin(a); acos(a); //数学常量 Math.PI; Math.E; Math.random();//获取一个0~1的随机数
Random类
-
Random用来创建随机数,伪随机数是指只要给定一个初始的种子,产生的随机数序列是完全一样的
-
用法如下
Random ran=new Random(); ran.nextInt();//生成一个随机的int值 ran.nextInt(20);//生成一个0~20之间的随机int值 ran.nextLong();//生成一个随机的long值 ran.nextFloat();//生成一个0~1之间的float值 ran.nextDouble();//生成一个0~1之间的double值
SecureRandom类
-
SecureRandom无法指定种子,SecureRandom使用RNG算法(random number generator),SecureRandom通过操作系统提供的安全的随机种子来生成随机数.因而SecureRandom生成的随机数更安全
-
使用例子如下
import java.util.Arrays; import java.security.SecureRandom; import java.security.NoSuchAlgorithmException; public class Main { public static void main(String[] args) { SecureRandom sr = null; try { sr = SecureRandom.getInstanceStrong(); // 获取高强度安全随机数生成器 } catch (NoSuchAlgorithmException e) { sr = new SecureRandom(); // 获取普通的安全随机数生成器 } byte[] buffer = new byte[16]; sr.nextBytes(buffer); // 用安全随机数填充buffer System.out.println(Arrays.toString(buffer)); } }