一、Math类
Math类即数学类,Java提供用来处理和计算复杂数学运算的类,Math
Math类常见的几种方法
- PI //圆周率,属性
- E //自然常数,属性
System.out.println("E 常量的值:" + Math.E);
System.out.println("PI 常量的值:" + Math.PI);片
- abs(num) //返回num值的绝对值
- max(num) //求最大值
- min(num) //求最小值
public class Test01 {
public static void main(String[] args) {
System.out.println("10 和 20 的较大值:" + Math.max(10, 20));
System.out.println("15.6 和 15 的较小值:" + Math.min(15.6, 15));
System.out.println("-12 的绝对值:" + Math.abs(-12));
}
}
运行结果:
10和20的较大值:20
15.6和15的较小值:15.0
-12的绝对值:12
- cbrt(num) //开立方根
- ceil(num) //向上取整
- floor(num) //向下取整
- pow(num1,num2) //a^b幂次方
- sqrt(num) //a的平方根
- random() //获取一个[0,1)的随机小数
import java.util.Scanner;
public class Test03 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.outprintln("请输入一个数字:");
double num = input.nextDouble();
System.out.println("大于或等于 "+ num +" 的最小整数:" + Math.ceil(num));
System.out.println("小于或等于 "+ num +" 的最大整数:" + Math.floor(num));
System.out.println("4 的立方值:" + Math.pow(4, 3));
System.out.println("16 的平方根:" + Math.sqrt(16));
}
}
运行结果:
请输入一个数字:
99.01
大于或等于 99.01 的最小整数:100.0
小于或等于 99.01 的最大整数:99.0
4的立方值:64.0
16的平方根:4.0
二、Random类
随机数:
- 计算机中的随机数都是伪随机数
Math.random() //获取一个[0,1)的随机小数
java.util.Random 包
Random r = new Random([long seed]);
r.nextInt();
r.nextDouble();
r.nextFloat();
…
import java.util.Random;
public class Test14_random {
public static void main(String[] args) {
Random r = new Random();
double d1 = r.nextDouble(); //生成[0,1.0]的小数
double d2 = r.nextDouble()*7; //生成[0,7.0]的小数
int i1 = r.nextInt(10); //生成[0,10]的整数
int i2 = r.nextInt(3) - 2; //生成[-3,15]的整数
long l1 = r.nextLong(); //生成一个随机长整型值
boolean b1 = r.nextBoolean(); //生成一个随机布尔型值
float f1 = r.nextFloat(); //生成一个随机浮点型值
System.out.println("d1="+d1);
System.out.println("d2="+d2);
System.out.println("i1="+i1);
System.out.println("i2="+i2);
System.out.println("生成一个随机长整型数为"+l1);
System.out.println("生成一个随机布尔类型值为"+b1);
System.out.println("生成一个随机浮点数值为"+f1);
System.out.println("下期开奖号码为:");
for(int i = 1; i <= 5; i++){
int num = r.nextInt(10); //生成[0,9]的整数
System.out.println("num="+num);
}
}
}
/**
* 运行结果
* d1=0.6314770238982214
*d2=0.4604462094788495
*i1=1
*i2=-2
*生成一个随机长整型数为2844467010302913629
*生成一个随机布尔类型值为false
*生成一个随机浮点数值为0.7984209
*下期开奖号码为:
*num=3
*num=0
*num=6
*num=2
*num=3
/
三、Scanner类
Scanner是标准输入流,IO流
next() //通过空格获取字符
- nextInt()
- nextDouble()
- …
import java.util.Scanner;
public class ScannerDemo {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
// 从键盘接收数据
// next方式接收字符串
System.out.println("next方式接收:");
// 判断是否还有输入
if (scan.hasNext()) {
String str1 = scan.next();
System.out.println("输入的数据为:" + str1);
}
scan.close();
}
}
运行结果: $ javac ScannerDemo.java
$ java ScannerDemo
nextLine方式接收:
runoob com
输入的数据为:runoob comnext() 与 nextLine() 区别
next():
1、一定要读取到有效字符后才可以结束输入。 2、对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。 3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。 next() 不能得到带有空格的字符串。
nextLine():
1、以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。 2、可以获得空白。
如果要输入 int 或 float 类型的数据,在 Scanner 类中也有支持,但是在输入之前最好先使用 hasNextXxx() 方法进行验证,再使用 nextXxx() 来读取:
import java.util.Scanner;
public class ScannerDemo {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
// 从键盘接收数据
int i = 0;
float f = 0.0f;
System.out.print("输入整数:");
if (scan.hasNextInt()) {
// 判断输入的是否是整数
i = scan.nextInt();
// 接收整数
System.out.println("整数数据:" + i);
} else {
// 输入错误的信息
System.out.println("输入的不是整数!");
}
System.out.print("输入小数:");
if (scan.hasNextFloat()) {
// 判断输入的是否是小数
f = scan.nextFloat();
// 接收小数
System.out.println("小数数据:" + f);
} else {
// 输入错误的信息
System.out.println("输入的不是小数!");
}
scan.close();
}
}
运行结果:
$ javac ScannerDemo.java
$ java ScannerDemo
输入整数:12 整数数据:12
输入小数:1.2 小数数据:1.2
四、字符串对象(String)
java.lang.String
字符串:字符连在了一起,形成了字符串。人的肉眼可以识别分符号
在Java中,一般表现为"",引号的内部内容就是字符串
在java中,字符串是引用数据类型(对象)
定义字符串:
- 第一种: String s = “this is a book!”; //定义了一个字符串
- 第二种:new String() //获取字符串
- String ss = new String(); // 等价于 String ss = “”;
- String sss = new String(“啦啦啦啦啦”); // 等价于 String sss = “啦啦啦啦啦”;
字符串是一个常量,是一种不可变的数据类型
常见的字符串方法:
|-- charAt(i) // 获取下标对应的字符
|-- length() // 返回字符串的长度
|-- codePointAt(i) // 获取下标对应的字符的Unicode值
|-- concat(str) // 拼接字符串
|-- contains(str) // 判断是否包含指定的字符系列。
|-- static copyValueOf(char[]) //返回指定数组中表示该字符序列的 String。
|-- endsWith(suffix) //测试此字符串是否以指定的后缀结束。
|-- startsWith(prefix) //测试此字符串是否以指定的前缀开始。
|-- equals(str) //将此字符串与指定的对象比较。
|-- equalsIgnoreCase(str) //将此 String 与另一个 String 比较,不考虑大小写。
|-- getByte() // 使用平台的默认字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。
|-- indexOf(str) //返回指定子字符串在此字符串中第一次出现处的索引。
|-- lastIndexOf(str) //返回指定子字符串在此字符串中最右边出现处的索引。
|-- isEmpty() //判断字符串是否为空
|-- replace(oldstr, newstr)//返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的
|-- split(regex) //根据匹配给定的正则表达式来拆分此字符串。
|-- substring(index) //返回一个新的字符串,它是此字符串的一个子字符串。
|-- substring(start, end) //返回一个新字符串,它是此字符串的一个子字符串。
|-- toCharArray() //将此字符串转换为一个新的字符数组。
|-- toLowerCase() //使用默认语言环境的规则将此 String 中的所有字符都转换为小写。
|-- toUpperCase() //使用默认语言环境的规则将此 String 中的所有字符都转换为大写。
|-- trim() //返回字符串的副本,忽略前导空白和尾部空白。
注意:
字符串不要使用等于符号判断是否相等
在java中 == 判断的值的,不能用来判断字符串
因为字符串的创建方式有多种,不同的创建方式,地址(指针)可能不一样
基本数据类型都是可以使用 == 判断是否相等
字符串不能还是用 == 判断是否相等
字符串中 == 判断的字符串的地址
equals判断是字符串的值;