API (Application Programming Interface) :应用程序编程接口
API帮助文档的使用流程
1. 在索引位置搜索自己要查看的类
2. 看包
目的: 是不是java.lang包(核心包), 不需要编写导包代码(import)
- 不是java.lang包, 都需要编写导包代码
3. 看这个类的介绍
目的: 搞清楚这个类的作用
4. 看这个类的构造方法
目的: 为了将该类的对象, 创建出来
5. 看这个类的成员方法(方法摘要)
1. 方法名
2. 参数
3. 返回值
4. 介绍
一、String类
1.Strin是Java定义好的一个类。定义在java.lang包中,所以使用的时候不需要导包。
2.Java程序中的所有字符串文字(例如“abc”)。都被实为此类的对象。
3.字符串不可变,它们的值在创建后不能被更改
//直接赋值
string s1 = "中国梦";
//输出打印
System.out.println(s1);
方法名 | 说明 |
public String() | 创建空白字符串,不含任何内容 |
public String(String original) | 根据传入的字符串,创建字符串对象。 |
public String(char[] chs) | 根据字符数组的内容,来创建字符串对象 |
public String(byte[] bys) | 根据字节数组的内容,来创建字符串对象 |
//使用new的方式来获取一个字符串对象
//空参构造:可以获取一个空白的字符串对象
String s2 = new String();
//输出打印
System.out.println(s2);
//使用new的方式来获取一个字符串对象
//根据传入的字符串,创建字符串对象。
String s3 = new String("欢迎光临");
//输出打印
System.out.println(s3);
// 使用new的方式来获取一个字符串对象
// 根据字符数组的内容,来创建字符串对象
char[] chs= {'a','b','c','d'};
String s4 = new String(chs);
//输出打印
System.out.println(s4); //abcd
//使用new的方式来获取一个字符串对象
//根据字节数组的内容,来创建字符串对象
byte[] bytes = {97, 98, 99};
String s5 = new String(bytes);
//输出打印
System.out.println(s5); //abc
直接赋值的:
new 出来的:
1、字符串的比较
比较基本数据类型:比较的是具体的值
int a = 10;
int b = 20;
System.out.println(a == b); //false
比较引用数据类型:比较的是对象地址值
String s1 = new String ("abc");
String s2 = new String ("abc");
System.out.println(s1 == s2); //false
boolean equals 方法(要比较的字符串) | 完全一样结果才是true,否则为false | 登录 |
boolean equalsignoreCase(要比较的字符串) | 忽略大小写的比较 | 验证码 |
//创建两个字符串对象。
String s1 = new String("abc");
String s2 = "abc";
//比较字符串对象中的内容是否相等
boolean result1 = s1.equals(s2);
System.out.println(result1); //true
//创建两个字符串对象。
String s1 = new String("abC");
String s2 = "ABc";
//比较字符串对象中的内容是否相等? 忽略大小写(只能是英文状态a A)
boolean result2 = s1.equalsIgnoreCase(s2);
System.out.println(result2); //true
2、遍历字符串
public char charAt(int index) | 根据索引返回字符 |
public int length() | 返回此字符串的长度 |
字符串的长度:字符串对象.lengtl() |
//两个方法:
//charAt():会根据索引获取对应的字符
//length(): 会返回字符串的长度
//1.键盘录入一个字符串
Scanner sc = new Scanner(System.in);
System.out.println("请输入字符串");
String str = sc.next();
//2.遍历
for (int i = 0; i < str.length(); i++) {
//i 依次表示字符串的每一个索引
//索引的范围:0 ~ 长度-1
//根据索引获取字符串里面的每一个字符
//ctrl + alt + V 自动生成左边的接受变量
char c = str.charAt(i);
//打印输出
System.out.println(c);
}
3、截取
String substring(int beginlndex, int endindex) | 截取 |
注意点:包头不包尾,包左不包右 只有返回值才是截取的小串 | |
String substring(int beginlndex) | 截取到末尾 |
//手机号屏蔽
//需求:以字符串的形式从键盘接受一个手机号,将中间四位号码屏蔽
public class 手机号屏蔽 {
public static void main(String[] args) {
//1.键盘录入一个手机号码
Scanner sc = new Scanner(System.in);
System.out.println("请输入手机号码");
String phoneNumber = sc.next(); //13388698821
//2.截取手机号码中的前三位
String star = phoneNumber.substring(0, 3);//133
//3.截取手机号码中的最后四位
//此时我用substring方法,是用1个参数的,还是两个参数的?1个参数的会更好
//因为现在我要截取到最后,所以建议使用1个参数的。
String end = phoneNumber.substring(7); //8821
//4.拼接
String result = star + "****" + end;
System.out.println(result);//133****8821
}
}
4、替换
String replace(旧值,新值) | 替换 |
注意点:只有返回值才是替换之后的结果 |
public class 敏感词替换 {
public static void main(String[] args) {
//1.定义一个变量表示骂人的话
String talk = "你会不会玩啊?真tmd菜";
//2.把这句话中的敏感词进行替换
String result = talk.replace("真tmd菜", "***");
//3.打印
System.out.println(result);
}
}
public class 多个敏感词替换 {
public static void main(String[] args) {
//实际开发中,敏感词会有很多很多
//1.先键盘录入要说的话
Scanner sc = new Scanner(System.in);
System.out.println("请输入要说的话");
String talk = sc.next();//后裔你玩什么啊,TMD,GDX,ctmd,ZZ
//2.定义一个数组用来存多个敏感词
String[] arr = {"TMD","GDX","ctmd","ZZ","lj","FW","nt"};
//3.把说的话中所有的敏感词都替换为***
for (int i = 0; i < arr.length; i++) {
//i 索引
//arr[i] 元素 --- 敏感词
talk = talk.replace(arr[i],"***");
}
//4.打印结果
System.out.println(talk);//后裔你玩什么啊,***,***,***,***
}
}
二、StringBuilder
public class Test_01 {
public static void main(String[] args) {
//这个要等很长时间。
String s = "";
for (int i = 0; i < 1000000; i++) {
s = s + "abc";
}
System.out.println(s);
//使用StringBuilder会更快
StringBuilder sb = new StringBuilder("");
for (int i = 0; i < 1000000; i++) {
sb.append("abc");
}
System.out.println(sb);
}
}
StringBuilder 可以看成是一个容器,创建之后里面的内容是可变的。
作用:提高字符串的操作效率。
方法名 | 说明 |
public StringBuilder() | 创建一个空白可变字符出对象,不含有任何内容 |
public StringBuilder(String str) | 根据字符出的内容,来创建可变字符串对象 |
//1.创建一个空白可变字符出对象,不含有任何内容
StringBuilder sb = new StringBuilder();
System.out.println(sb); //空白
//2.根据字符出的内容,来创建可变字符串对象
StringBuilder sb1 = new StringBuilder("下一位");
System.out.println(sb1); //下一位
方法名 | 说明 |
public StringBuilder append(任意美型) | 添加数据,并返回对象本身 |
public StringBuilder reverse() | 反转容器中的内容 |
public int length() | 返回长度(字符出现的个数) |
public String toString() | 通过toString0就可以实现把StringBuilder转换为String |
//创建对象
StringBuilder sb = new StringBuilder();
//添加元素
sb.append(1);
sb.append(2.3);
sb.append(true);
sb.append("欢迎光临");
System.out.println(sb);
//获取长度
int len = sb.length();
System.out.println(len);//12
//创建对象
StringBuilder sb = new StringBuilder("abc");
//反转
sb.reverse();
System.out.println(sb);//cba
//创建对象
StringBuilder sb = new StringBuilder();
//添加元素
sb.append("aaa");
sb.append("bbb");
sb.append("ccc");
sb.append("ddd");
//再把StringBuilder变回字符串。
String str = sb.toString();
System.out.println(str);
1、链式编程
当我们在调用一个方法的时候,不需要用变量接收他的结果,可以继续调用其他方法
public class StringBuilderDemo4 {
public static void main(String[] args) {
//1.创建对象
StringBuilder sb = new StringBuilder();
//2.添加字符串 链式编程
sb.append("aaa").append("bbb").append("ccc").append("ddd");
System.out.println(sb);//aaabbbcccddd
//3.再把StringBuilder变回字符串
String str = sb.toString();
System.out.println(str);//aaabbbcccddd
}
}
三、StringJoiner
StringJoiner跟StringBuilder一样,也可以看成是一个容器,创建之后里面的内容是可变的。
方法名 | 说明 |
public StringJciner(间隔符号) | 创建一个StringJciner对象,指定拼接时的间隔符号 |
public StringJciner(间隔符号,开始符号,结束符号) | 创建一个StringJoiner对象,指定拼接时的间隔符号、 开始符号、结束符号 |
//1.创建一个对象,并指定中间的间隔符号
StringJoiner sj = new StringJoiner("---");
//2.添加元素
sj.add("aaa").add("bbb").add("ccc");
//3.打印结果
System.out.println(sj);//aaa---bbb---ccc
//1.创建对象
StringJoiner sj = new StringJoiner(", ","[","]");
//2.添加元素
sj.add("aaa").add("bbb").add("ccc");
int len = sj.length();
System.out.println(len);//15
//3.打印
System.out.println(sj);//[aaa, bbb, ccc]
String str = sj.toString();
System.out.println(str);//[aaa, bbb, ccc]
方法名 | 说明 |
public StringJoiner add(添加的内容) | 添加数据,并返回对象本身 |
public int length() | 返回长度(字符出现的个数) |
public String toString() | 返回一个字符串(该字符串就是拼接之后的结果) |
//创建对象
StringJoiner sj = new StringJoiner("---");
//添加元素
sj.add("aaa").add("bbb").add("ccc");
System.out.println(sj);//aaa---bbb---ccc
//1.创建对象
StringJoiner sj = new StringJoiner(", ","[","]");
//添加元素
sj.add("aaa").add("bbb").add("ccc");
System.out.println(sj); //[aaa, bbb, ccc]
//2.获取字符串的长度。
int len = sj.length();
System.out.println(len);
//3.再把StringJoiner变回字符串
String str = sj.toString();
System.out.println(str);