Java中的string类以及用法实例


前言

今天让我们来了解一下Java中的String类的使用

一、String类概述

在这里插入图片描述
1.String类是一个由final关键字修饰的类,这个类不可以被继承.
2.字符串是常量,用双引号引起来表示,它们的值在内存中创建之后就不可以修改.
3.在java中多个字符组成的一串数据都会被归为(视为)String类的一个实例对象.
4.String对象的值一旦确定,值就不可以再次修改了,也就是值就不可变了,如果改变值就会创建一个新的对象(在底层也就是创建了一个新的数组).

二、String类对象

1.对象的创建

有四种方式
如下图
在这里插入图片描述
接下来我们由代码进入实例操作

package String;

import java.util.Scanner;

public class String01 {
    public static void main(String[] args) {
        //利用空参创造一个字符串对象
        String s=new String();
        System.out.println("#"+s+1);//String创建时系统默认值为空
//        Scanner sc=new Scanner(System.in);
//        String s=sc.next();
//        System.out.println(s);
        //利用字符串数组来创建字符串对象
        char[] ch={'c','c','s','w'};
        String s1=new String(ch);
        System.out.println(s1);

        //利用字节数组创建字符串对象
        byte[] by={97,98,99,100,101};
        String s2=new String(by);
        System.out.println(s2);

        //根据一个字符串创造一个新字符串
        String s3=new String("abcf");
        System.out.println(s3);

        //直接赋值的方式获取一个字符串
        String s4="abcde";
        System.out.println(s4);
    }
}

2.String内存图

在这里插入图片描述
其中String开辟的空间都在堆内存里面放着

三、String类的比较

在这里插入图片描述
基本数据类型和引用数据类型的比较方式不同
在这里插入图片描述

接下来我们来看代码实例

package String;

public class bijiao {
    public static void main(String[] args) {
        //创建两个字符串
        String s1="abc";
        String s2="abc";

        //调用方法进行比较
        //比较s1和s2的参数是是否完全一致
        //如果完全一致返回ture否则返回false
        boolean result = s1.equals(s2);
        System.out.println(result);

        //再创建一个字符串
        String s3=new String("abc");

        //同样进行比较
        boolean result1 = s1.equals(s3);

        //最后输出
        System.out.println(result1);

        //要想忽略大小写
        String s4="Abc";
        boolean result2 = s1.equalsIgnoreCase(s4);
        System.out.println(result2);
    }
}

运行结果如下

"C:\JetBrains\IntelliJ IDEA 2019.2.4\jbr\bin\java.exe" "-javaagent:C:\JetBrains\IntelliJ IDEA 2019.2.4\lib\idea_rt.jar=60447:C:\JetBrains\IntelliJ IDEA 2019.2.4\bin" -Dfile.encoding=UTF-8 -classpath C:\IdeaProjects\heima169work\out\production\day11 String.bijiao
true
true
true

**当两个字符串赋值相同,说明他们的赋的地址值相同,好比代码中的s1和s2最后返回的结果为徒惹,说明他们的地址值相同
**
在这里插入图片描述
字符串和数组的长度的求法是不一样的
他们两的求法分别为
在这里插入图片描述

四、String类的遍历

1.方法一

接下来我们直接上代码更加直观一点

package String;

import java.util.Scanner;

public class bianli {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        String str=sc.next();
        for(int i=0;i<str.length();i++)
        {
            char c=str.charAt(i);
            //charAt()表示获取字符串的第i个元素的值
            System.out.println(c);
        }//返回char的遍历
    }
}

运行结果为

"C:\JetBrains\IntelliJ IDEA 2019.2.4\jbr\bin\java.exe" "-javaagent:C:\JetBrains\IntelliJ IDEA 2019.2.4\lib\idea_rt.jar=60542:C:\JetBrains\IntelliJ IDEA 2019.2.4\bin" -Dfile.encoding=UTF-8 -classpath C:\IdeaProjects\heima169work\out\production\day11 String.bianli
abcdef
a
b
c
d
e
f

2.方法二

package String;

import java.util.Scanner;

public class bianli01 {
    public static void main(String[] args) {
        //将字符串拆分为字符数组
        Scanner sc = new Scanner(System.in);
        String str = sc.next();

        //将字符串变成字符串数组
        char[] arr = str.toCharArray();

        //开始遍历
        for (int i = 0; i < arr.length; i++)
        {
            System.out.println(arr[i]);
        }
    }
}

结果如下

"C:\JetBrains\IntelliJ IDEA 2019.2.4\jbr\bin\java.exe" "-javaagent:C:\JetBrains\IntelliJ IDEA 2019.2.4\lib\idea_rt.jar=60561:C:\JetBrains\IntelliJ IDEA 2019.2.4\bin" -Dfile.encoding=UTF-8 -classpath C:\IdeaProjects\heima169work\out\production\day11 String.bianli01
abcdef
a
b
c
d
e
f

这里可以看出两个方法的结果最终一样,大家可以根据选用适合自己的方法

五、String类的反转

话不多说直接上代码

package String;

import java.util.Scanner;

public class fanzhuan {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        String str1=sc.next();
        String str2=reversal(str1);
        System.out.println(str2);
    }
    //字符串的反转
    public static String reversal(String str){
        String s="";
        for (int i = str.length()-1; i >= 0; i--) {
            char c=str.charAt(i);
            s=s+c;
        }
        return s;
    }
    //字符串的反转
}

运行结果如下

"C:\JetBrains\IntelliJ IDEA 2019.2.4\jbr\bin\java.exe" "-javaagent:C:\JetBrains\IntelliJ IDEA 2019.2.4\lib\idea_rt.jar=60598:C:\JetBrains\IntelliJ IDEA 2019.2.4\bin" -Dfile.encoding=UTF-8 -classpath C:\IdeaProjects\heima169work\out\production\day11 String.fanzhuan
abcd
dcba

六、String类的切割

上代码!!!

package String;

import java.util.Scanner;

public class qiege {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        //定义字符串
        String str="123456---abcdef---546789";

        //切割字符串
        String []arr=str.split("---");

        //输出字符串
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
    }
}

运行结果如下

"C:\JetBrains\IntelliJ IDEA 2019.2.4\jbr\bin\java.exe" "-javaagent:C:\JetBrains\IntelliJ IDEA 2019.2.4\lib\idea_rt.jar=60624:C:\JetBrains\IntelliJ IDEA 2019.2.4\bin" -Dfile.encoding=UTF-8 -classpath C:\IdeaProjects\heima169work\out\production\day11 String.qiege
123456
abcdef
546789

特别要注意切割方法split的使用

七、String类的切割

上!

package String;

import java.sql.SQLOutput;
import java.util.Scanner;

public class tihuan {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        String str=sc.next();
        //调用String中的replace方法
        String result=str.replace("TMD","***");
        System.out.println(result);
    }
}

注意在切割方法中需要导入import java.sql.SQLOutput;包
运行结果如下

"C:\JetBrains\IntelliJ IDEA 2019.2.4\jbr\bin\java.exe" "-javaagent:C:\JetBrains\IntelliJ IDEA 2019.2.4\lib\idea_rt.jar=60657:C:\JetBrains\IntelliJ IDEA 2019.2.4\bin" -Dfile.encoding=UTF-8 -classpath C:\IdeaProjects\heima169work\out\production\day11 String.tihuan
TMD你玩的真菜
***你玩的真菜

八、String类的拼接

package String;
//String的拼接
public class pingjie {
    public static void main(String[] args) {
        int []arr={1,2,3};
        String str=print(arr);
        System.out.println(str);

    }
    public static String print(int []arr){
        String str="[";
        for (int i = 0; i < arr.length; i++) {
            if(i==arr.length-1){
                str=str+arr[i];
            }
            else{
                str=str+arr[i]+",";
            }
        }
        str=str+"]";
        return str;
    }
}

运行结果如下

"C:\JetBrains\IntelliJ IDEA 2019.2.4\jbr\bin\java.exe" "-javaagent:C:\JetBrains\IntelliJ IDEA 2019.2.4\lib\idea_rt.jar=60681:C:\JetBrains\IntelliJ IDEA 2019.2.4\bin" -Dfile.encoding=UTF-8 -classpath C:\IdeaProjects\heima169work\out\production\day11 String.pingjie
[1,2,3]

九、String类的截取

懒得说了家人们

package String;

import java.util.Scanner;

public class jiequ {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String phone = sc.next();

        //输入一个电话号码

        String start=phone.substring(0,3);

        //截取电话号码的前三位

        String end=phone.substring(7);

        //截取电话号码的后四位

        phone=start+"****"+end;
        System.out.println(phone);
    }
}

运行结果如下

"C:\JetBrains\IntelliJ IDEA 2019.2.4\jbr\bin\java.exe" "-javaagent:C:\JetBrains\IntelliJ IDEA 2019.2.4\lib\idea_rt.jar=60705:C:\JetBrains\IntelliJ IDEA 2019.2.4\bin" -Dfile.encoding=UTF-8 -classpath C:\IdeaProjects\heima169work\out\production\day11 String.jiequ
1648262943
164****943

这是我的QQ大家有兴趣加一下

小结

在这里插入图片描述
以我浅薄的知识就只能写道这里了,今天的操作量有点大,最后还是祝大家天天开心

在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

第七片海⡬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值