1.API
1.1 API概述
- 什么是API
- API (Application Programming Interface) :应用程序编程接口
- java中的API
- 指的就是 JDK 中提供的各种功能的 Java类,这些类将底层的实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可,我们可以通过帮助文档来学习这些API如何使用。
1.2 如何使用API帮助文档
- 打开帮助文档
- 找到索引选项卡中的输入框
- 在输入框中输入Random
- 看类在哪个包下
- 看类的描述
- 看构造方法
- 看成员方法
2. Scanner类
2.1 构造方法
- 没有空参构造方法
- 常用构造方法:
public Scanner(InputStream source)
2.2 成员方法
- public int nextInt(){} 将输入的下一个标记扫描为int
- public String next(){}查找并返回此扫描仪的下一个完整令牌
- public String nextLine(){}将输入的下一个标记扫描为String
2.3 注意
- nextInt和nextLine 不能同时使用,因为nextLine结束标记为回车
- next不能完整录入有空格的内容,因为next结束标记为空格
3. String类
3.1 String概述
-
String 类在 java.lang 包下,所以使用的时候不需要导包
-
String 类代表字符串,Java 程序中的所有字符串文字(例如“abc”)都被实现为此类的实例也就是说,Java 程序中所有的双引号字符串,都是 String 类的对象
-
字符串不可变,它们的值在创建后不能被更改,每次赋值都是在修改内存地址
String str1 = "abc“; //内存中开辟新空间,保存123,str1重新保存新地址 str1 = "123";
3.2 常用构造方法
-
public String ()
-
public String (char[] chs)
-
public String (String original)
-
String s = " abc "
-
注意:
- 打印字符串对象,显示的不是地址,而是值。
- 以“”方式给出的字符串,只要字符序列相同(顺序和大小写),无论在程序代码中出现几次,JVM 都只会建立一个 String 对象,并在字符串常量池中维护
- 字符串常量池中的数据可以共享
3.3 字符串拼接
- 字符串拼接变量:底层是通过StringBuilder完成
- 字符串常量拼接:采用常量优化机制
3.4 字符串的比较
- == 比较基本数据类型:比较的是具体的值
- == 比较引用数据类型:比较的是对象地址值
3.5 equals方法
- public boolean equals(String s)
- 比较两个字符串内容是否相同、区分大小写**
- 代码
package com.itheima.stringmethod;
public class Demo1Equals {
public static void main(String[] args) {
String s1 = "abc";
String s2 = "ABC";
String s3 = "abc";
// equals : 比较字符串内容, 区分大小写
System.out.println(s1.equals(s2));
System.out.println(s1.equals(s3));
// equalsIgnoreCase : 比较字符串内容, 忽略大小写
System.out.println(s1.equalsIgnoreCase(s2));
}
}
3.6 charAt方法
- 格式
- public char charAt(int index)
- 作用
- 得到字符串中传入索引处的字符并返回
- 代码实现
import java.util.Scanner;
public class Test2 {
/*
需求:键盘录入一个字符串,得到3索引的字符
*/
public static void main(String[] args) {
// 1. 键盘录入一个字符串,用 Scanner 实现
Scanner sc = new Scanner(System.in);
System.out.println("请输入:");
String s = sc.nextLine();
char c = s.charAt(0);
System.out.println(c);
}
}
}
3.7 substring方法
- public String substring(int index) {}
- 从传入索引值开始截取一个新的字符串并返回
- public String substring(int index1,int index2) {}
- 从第一个参数索引处截取到第二个参数索引处,得到新的字符串并返回
- 案例
- 以字符串的形式从键盘接受一个手机号,将中间四位号码屏蔽
import java.util.Scanner;
public class Test5 {
/*
需求:以字符串的形式从键盘接受一个手机号,将中间四位号码屏蔽
最终效果为:156****1234
*/
public static void main(String[] args) {
// 1. 键盘录入一个字符串,用 Scanner 实现
Scanner sc = new Scanner(System.in);
System.out.println("请输入手机号:");
String telString = sc.nextLine();
// 2. 截取字符串前三位
String start = telString.substring(0,3);
// 3. 截取字符串后四位
String end = telString.substring(7);
// 4. 将截取后的两个字符串,中间加上****进行拼接,输出结果
System.out.println(start + "****" + end);
}
}
3.8 replace方法
- public String replace(String str1,String str2)
- 使用传入字符串替换另一个字符串
- 案例
- 将字符串中的“TMD"使用"***"替换
- 代码实现
public class Test {
/*
需求:如果字符串中包含(TMD),则使用***替换
*/
public static void main(String[] args) {
String s ="你TMD可真优秀";
String result = s.replace("TMD","***");
System.out.println(result);
}
}
3.9 切割字符串
- public String[ ] split(String regex){ }
- 将字符串按照传入的字符规则切割成字符并装入字符数组
- 案例
- 将字符串按空格切成字符,形成字符数组
- 代码实现
public class Test {
/*
需求:
将字符串按照空格切割并生成字符数组
*/
public static void main(String[] args) {
String str = "1 2 3 4 5 6 7 8 9";
String[] sArr = str.split(",");
for(i = 0;i < sArr.length;i++){
System.out.println(sArr[i]);
}
}
}
3.10 String 方法小结
方法 | 作用 |
---|---|
public boolean equals(String s) | 比较字符串内容,包括大小写 |
public boolean equalsgnore(String s) | 比较内容,不区分大小写 |
public int length() | 返回一个字符串的长度 |
public char charAt (int index ) | 返回传入索引处的字符值 |
public char[] toCharArray (String s) | 将字符串拆分成字符数组然后返回 |
public String substring(int beginIndex) | 从传入的索引处截取字符串到末尾 |
public String substring(int beginIndex , int endIndex) | 截取索引之间的字符,含头不含尾 |
public String replace(String s1,String s2) | 使用新的字符将旧的替换,得到新的字符串 |
public String[] split(String regex) | 根据传入的规则切割字符串,存入一个字符数组并返回 |
4. StringBuilder类
4.1 StringBuilder类概述
- StringBuilder 是一个可变的字符串类,我们可以把它看成是一个容器,这里的可变指的是 StringBuilder 对象中的内容是可变的
4.2 作用
- 提供字符串的拼接效率
4.3 StringBuilder类和String类的区别
-
String类:内容是不可变的
-
StringBuilder类:内容是可变的
4.4 常用的构造方法
方法名 | 说明 |
---|---|
public StringBuilder() | 创建一个空白可变字符串对象,不含有任何内容 |
public StringBuilder(String str) | 根据字符串的内容,来创建可变字符串对象 |
4.5 常用的成员方法
方法名 | 说明 |
---|---|
public StringBuilder append(任意类型) | 添加数据,并返回对象本身 |
public StringBuilder reverse() | 返回相反的字符序列 |
public int length() | 返回长度 ( 字符出现的个数) |
public String toString() | 通过toString()就可以实现把StringBuilder转换为String |
5. Random类
5.1 构造方法
方法 | 作用 |
---|---|
public Random() | 空参构造,创建一个新的随机数生成器 |
public Random(long seed) | 有参构造,创建一个从零到传入数字范围的随机数 |
5.2 成员方法
- 常用成员方法与Scanner类似
- 案例
- 产生任意数之间的随机数
//产生3-8之间的随机数 Random r = new Random(); int max = 8; int min = 3; int num = r.nextInt(max-min + 1) + min; System.out.println(num);
6. Math类
6.1 Math类概述
- Math 包含执行基本数字运算的方法
6.2 Math中方法的调用方式
- Math类中无构造方法,但内部的方法都是静态的,则可以通过类名加点进行调用
6.3 常用方法
方法名 方法名 | 说明 |
---|---|
public static int abs(int a) | 返回参数的绝对值 |
public static double ceil(double a) | 返回大于或等于参数的最小double值,等于一个整数 |
public static double floor(double a) | 返回小于或等于参数的最大double值,等于一个整数 |
public static int round(float a) | 按照四舍五入返回最接近参数的int |
public static int max(int a,int b) | 返回两个int值中的较大值 |
public static int min(int a,int b) | 返回两个int值中的较小值 |
public static double pow (double a,double b) | 返回a的b次幂的值 |
public |