学习目标:
- 一周掌握 Java 入门知识
学习内容:
字符串
学习时间:
下午 6 点-下午 8 点
学习产出:
练习:手机号屏蔽
String substring(int beginIndex,int endIndex) 截取
注意点:包头不包尾,包左不包右
只有返回值才是截取的小串
String substring(int beginIndex) 截取到末尾
public class Demo1 {
public static void main(String[] args) {
//获取一个手机号
String phoneNumber="13112341234";
//jieq前三位
String start=phoneNumber.substring(0,3);
//截取后四位
String end=phoneNumber.substring(7);
//拼接
String result=start+"****"+end;
System.out.println(result);
}
}
运行结果
131****1234
练习:身份证信息查看
public class Demo2 {
public static void main(String[] args) {
String id="342423202407125641";
//获取年月日
String year=id.substring(6,10);
String month=id.substring(10,12);
String day=id.substring(12,14);
System.out.println("人物信息为:");
System.out.println("出生年月日:"+year+"年"+month+"月"+day+"日");
//获取性别
char c=id.charAt(17); //'3'-----> 3
//利用ASCII码表
//'0'----> 48
//'1'----> 49
//'2'----> 50
int num= c-48;
if(num%2==0){
System.out.println("性别为:女");
}else {
System.out.println("性别为:男");
}
}
运行结果
人物信息为:
出生年月日:2024年07月12日
性别为:男
练习:敏感词替换
String replace(旧值,新值) 替换
注意点:只有返回值才是替换的结果。
public class Damo3 {
public static void main(String[] args) {
//获取到说的话
String talk="你玩的真好,我上早八";
//定义一个敏感词库
String[] arr={"TMD","CNM","上早八"};
//循环得到数组中的每一个敏感词,依次替换
for (int i = 0; i < arr.length; i++) {
talk=talk.replace(arr[i],"***");
}
System.out.println(talk);
}
}
运行结果
你玩的真好,我***
StringBuilder
StringBuilder可以看成是一个容器,创建之后里面的内容是可变的
作用:提高字符串的操作
StringBuilder构造方法
方法名 | 说明 |
public StringBuilder() | 创建一个空白可变字符串对象,不含有任何内容 |
public StringBuilder(String str) | 根据字符串的内容,来创建可变字符串对象 |
StringBuilder常用方法
方法名 | 说明 |
public StringBuilder append(任意类型) | 添加数据,并返回对象本身 |
public StringBuilder reverse() | 反转容器中的内容 |
public int length() | 返回长度(字符出现的个数) |
public String toString() | 通过toString()就可以实现把StringBuilder转换为toString |
public class Demo5 {
public static void main(String[] args) {
StringBuilder sb=new StringBuilder("abc");
/* //拼接
sb.append(1);
sb.append(0.4);
sb.append(true);
System.out.println(sb);*/
//反转
sb.reverse();
//获取长度
int len=sb.length();
System.out.println(len);
System.out.println(sb);
}
}
运行结果
3
cba
public class Demo6 {
public static void main(String[] args) {
//创建对象
StringBuilder sb=new StringBuilder();
//添加字符串
sb.append("aaa");
sb.append("bbb");
sb.append("ccc");
//把StringBuilder变回字符串
String str=sb.toString();
System.out.println(str);
}
}
运行结果
aaabbbccc
链式编程 当我们在调用一个方法的时候,不需要用变量接收它的结果,可以继续调用其他方法
import java.util.Scanner;
public class Demo7 {
public static void main(String[] args) {
//链式编程
//当我们在调用一个方法的时候,不需要用变量接收它的结果,可以继续调用其他方法
int len=getString().substring(1).replace("a","b").length();
System.out.println(len);
}
public static String getString(){
Scanner scan=new Scanner(System.in);
System.out.println("请输入一个字符串:");
String str=scan.next();
return str;
}
}
运行结果
请输入一个字符串:
abc
使用StringBuilder的场景:
1.字符串拼接
2字符串反转
练习:对称字符串
需求:键盘接收一个字符串,程序判断出该字符串是否是对称字符串。
对称字符串:12321、111
非对称字符串:123123
import java.util.Scanner;
public class Demo8 {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
System.out.println("请输入一个字符串:");
String str=scan.next();
String result=new StringBuilder().append(str).reverse().toString();
if(str.equals(result)){
System.out.println("是对称");
}else {
System.out.println("不是对称");
}
}
}
运行结果
请输入一个字符串:
12321
是对称
练习:拼接字符串
定义一个方法,把int数组中的数据按照指定的格式拼接成一个字符串返回,调用该方法。
public class Demo9 {
public static void main(String[] args) {
int[]arr={1,2,3};
System.out.println(arrToString(arr));
}
public static String arrToString(int[] arr){
StringBuilder sb=new StringBuilder();
sb.append("[");
for (int i = 0; i < arr.length; i++) {
if(i==arr.length-1){
sb.append(arr[i]);
}else {
sb.append(arr[i]).append(", ");
}
}
sb.append("]");
return sb.toString();
}
}
运行结果
[1, 2, 3]
StringJoiner
StringJoiner概述
StringJoiner跟StringBuilder一样,也可以看成是一个容器,创建之后里面的内容是可变的。
作用:提高字符串的操作效率,而且代码编写特别简洁。Jdk8出现的。
StringJoiner构造方法
方法名 | 说明 |
public StringJoiner(间隔符号) | 创建一个StringJoiner对象,指定拼接时的间隔符号 |
public StringJoiner(间隔符号、开始符号、结束符号) | 创建一个StringJoiner对象,指定拼接时的间隔符号、开始符号、结束符号 |
StringJoiner常用方法
方法名 | 说明 |
public StringJoiner add(添加的内容) | 添加数据,并返回对象本身 |
public int length() | 返回长度(字符出现的个数) |
public String toString() | 通过toString()就可以实现把SStringJoiner转换为toString |
public class Demo10 {
public static void main(String[] args) {
//创建对象
StringJoiner sj=new StringJoiner("---");
sj.add("aaa").add("bbb").add("ccc");
System.out.println(sj);
}
}
aaa---bbb---ccc
import java.util.StringJoiner;
public class Demo10 {
public static void main(String[] args) {
StringJoiner sj=new StringJoiner(",","[","]");
sj.add("aaa").add("bbb").add("ccc");
System.out.println(sj);
int len =sj.length();
System.out.println(len);
}
}
[aaa,bbb,ccc]
13