7.1 字符串类
7.1.1 创建字符串
Java中定义了三个封装字符串的类,分别是String、StringBuffer和StringBuilder
把不同的类型组合成字符串:
代码:
// 创建一个空的字符串
String str1 = new String();
// 创建一个内容为abcd的字符串
String str2 = new String("abcd");
// 创建一个内容为字符数组的字符串
char[] charArray = new char[] { 'D', 'E', 'F' };
String str3 = new String(charArray);
// 创建一个内容为字节数组的字符串
String str4 = new String(arr);
输出结果:
7.1.2 String类
常见方法:
注意:1、trim()方法只能去除两端的空格,不能去除中间的空格。若想去除字符串中间的空格,需要调用String类的replace()方法。
2、equals()方法用于比较两个字符串中的字符是否相等,==方法用于比较两个字符串对象的地址是否相同
3、substring()方法用于截取字符串的一部分,split()方法用于将字符串按照某个字符进行分割。
7.1.3 StringBuffer类(可以改变长度的字符串)
StringBuffer类和String类最大的区别在于它的内容和长度都是可以改变的。StringBuffer类似一个字符容器,当在其中添加或删除字符时,并不会产生新的StringBuffer对象。
常见方法:
7.1.4 StringBiulder类(可以同步访问)
StringBuilder类是JDK5中新加的类,它与StringBuffer之间最大不同在于StringBuilder的方法是线程安全的,也就是说StringBuffer不能被同步访问,而StringBuilder可以。
三者的工作效率为StringBuilder>StringBuffer>String
三者的不同:
(1)String类表示的字符串是常量,一旦创建后,内容和长度都是无法改变的。
(2)equals()方法对于StringBuffer类与StringBuilder类来言并不起作用。
(3)String类对象可以用操作符“+”进行连接,而StringBuffer类对象之间不能。
7.2 System类
需要打印结果时,使用的都是“System.out.println();”语句,这句代码中就使用了System类。System类定义了一些与系统相关的属性和方法,它所提供的属性和方法都是静态的,因此,想要引用这些属性和方法,直接使用System类调用即可。
常用方法:
7.3 Runtime类
Runtime类用于表示虚拟机运行时的状态,它用于封装JVM虚拟机进程。每次使用java命令启动虚拟机都对应一个Runtime实例,并且只有一个实例,因此在Runtime类定义的时候,它的构造方法已经被私有化了(单例设计模式的应用),对象不可以直接实例化。若想在程序中获得一个Runtime实例,只能通过以下方式: Runtime run = Runtime.getRuntime(); 由于Runtime类封装了虚拟机进程,因此,在程序中通常会通过该类的实例对象来获取当前虚拟机的相关信息。
常用方法:
7.4 Math类
public class Example16 {
public static void main(String[] args) {
System.out.println("计算绝对值的结果: " + Math.abs(-10));
System.out.println("求大于参数的最小整数: " + Math.ceil(5.6));
System.out.println("求小于参数的最大整数: " + Math.floor(-4.2));
System.out.println("对小数进行四舍五入后的结果: " + Math.round(-4.6));
System.out.println("求两个数的较大值: " + Math.max(2.1, -2.1));
System.out.println("求两个数的较小值: " + Math.min(2.1, -2.1));
System.out.println("生成一个大于等于0.0小于1.0随机值: " +
Math.random());
System.out.println("开平方的结果: "+Math.sqrt(4));
System.out.println("指数函数的值: "+Math.pow(2, 3));
}
}
7.5 Random类
7.5.1 创造Random类![](https://i-blog.csdnimg.cn/blog_migrate/b7524ce87e744e53fc9ce3b1f1877b5d.png)
代码:
import java.util.Random;
public class Example17 {
public static void main(String args[]) {
Random r = new Random(); // 不传入种子
// 随机产生10个[0,100)之间的整数
for (int x = 0; x < 10; x++) {
System.out.println(r.nextInt(100)); //结果根据运行时间不同而不固定
}
}
}
//结果固定
1 import java.util.Random;
2 public class Example18 {
3 public static void main(String args[]) {
4 Random r = new Random(13); // 创建对象时传入种子
5 // 随机产生10个[0,100)之间的整数
6 for (int x = 0; x < 10; x++) {
7 System.out.println(r.nextInt(100));
8 }
9 }
10 }
相对于Math的random()方法而言,Random类提供了更多的方法来生成各种伪随机数,不仅可以生成整数类型的随机数,还可以生成浮点类型的随机数。
7.5.2 Random常用方法
Random类的nextDouble()方法返回的是0.0和1.0之间double类型的值,nextFloat()方法返回的是0.0和1.0之间float类型的值,nextInt(int n)返回的是0(包括)和指定值n(不包括)之间的值。