7、字符串

 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 可以看成是一个容器,创建之后里面的内容是可变的。

作用:提高字符串的操作效率。

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); //下一位
StringBuilder成员方法

方法名

说明

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一样,也可以看成是一个容器,创建之后里面的内容是可变的。

StringJoiner构造方法

方法名

说明

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]
StringJoiner成员方法

方法名

说明

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);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值