第四章:实用类
一,Math类
java.lang.Math
类提供了常用的数学运算方法和两个静态常量E(自然对数的底数) 和PI(圆周率)。
绝对值: Math.abs(-3.5); //返回3.5
最大值: Math.max(2.5, 90.5);//返回90.5
随机数: int random = (int) (Math.random() * 10); //生成一个0-9之间的随机数
还有很多的数学上的方法:
具体的可以下载java API文档看一下。
二,Random类
Random是生成随机数的一个工具类.
**注意:**用同一个种子值来初始化两个Random 对象,然后用每个对象调用相同的方法,得到的随机数也是相同的
Random rand=new Random(); //创建一个Random对象
for(int i=0;i<20;i++){//随机生成20个随机整数,并显示
int num=rand.nextInt(10);//返回下一个伪随机数,整型的
System.out.println("第"+(i+1)+"个随机数是:"+num);
}
在实际的web项目中,Random类不用于生成唯一的标识(id),重复率很高,做项目时会有很多方式生成唯一的随机数,这个我们之后再讲。
三,String类
众所周知:String类型是一个类类型,所以里面也有很多方法需要我们去了解,我们经常使用String,所以一定要熟悉它的成员方法。
实例化字符串的方法:
String s = "Hello World";//直接赋值
String s = new String();//new 出来以后再赋值
String s = new String("Hello World");//开辟空间的同时赋值
String类位于java.lang包中,java.lang是不需要导包的,具有丰富的方法,计算字符串的长度、比较字符串、连接字符串、提取字符串等。
length()方法
我们可以通过length()方法知道字符串的长度,返回值是int。
int l1 = “你好”.length();
int l2 = new String("nihao").length();
equals()方法
String类提供了equals( )方法,比较存储在两个字符串对象的内容是否一致。
复习:equals和“==”的区别
- equals():用于类类型,比较其对象内容,方法来源于基类Object。
- “==”:
- 当用于类类型时,比较其地址,而不是内容,用于判断是否是同一个字符串对象;
- 用于基本类型时,比较的是内容。
equals()方法比较原理
String的底层是一个char数组,所以我们用equals比较的时候,是对比每一个下标的值是否相等,如果全部相等则放回true,如果不完全相等,则返回false。
字符串比较的其他方法
- 使用equalsIgnoreCase()忽略大小写
- 使用toLowerCase()转换成小写
- 使用toUpperCase()转换成大写
这三个方法我们一般用于验证码的校验,因为要忽略大小写,所以校验验证码要用到。
"hello".equalsIgnoreCase(“HellO”)//返回true
"Hello".toLowerCase()//放回hello
"Hello".toUpperCase()//放回HELLO
字符串连接
我们一开始用String字符串连接都是用String str1 = 123+"";
但是这种是不推荐的,刚才说过,String的底层是char数组,所以我们在进行字符串连接的时候,Java虚拟机会创建新的字符串,然后把对象指向堆内存的空间,老的指向直接断开,这就造成了老空间没有指向,会变成垃圾,等待java的处理,当你频繁做字符串拼接操作时,Java虚拟机的空间会满。所以我们不建议使用直接+
号拼接字符串。
concat()方法
concat方法时String的成员方法,java建议我们使用这个去拼接字符串,因为不造成垃圾。
String str = new String("hello ");
str= str.concat("world");
System.out.println(str)//输出hello world
split()方法
split方法是一个切割方法,我们可以指定分隔符,把字符串切割成一个一个的字符串,方法返回值是一个String数组。
String str = “佩,罗x,isb”
String[] strs = str.split(",")
for(String s : strs){
System.out.println(s);
//输出结果:
佩
罗x
isb
}
其他方法
String的方法还有很多,大家电脑上可以放一个API文档方便随时查看。