java(抓哇)基础篇字符串String的介绍(在更新中 冲的话冲)

📋个人简介

      📜个人简介 :
    
       🎅 作者简介:大家好,我是迈热✌️
       🌝 支持一下:点赞👍+收藏🌟+留言📪
       📣 系列专栏:java基础🍁
       ✉️格言:先把键盘敲烂再说💻往死里敲!🌞

🌞学习前的小唠叨

🌈🌈哈喽 兄弟萌! 我们都在想成为大佬的路上加油着👍
既然我们已经踏入了学习这一长路, 那么就把它做的让
自己满意为止💜 加油兄弟萌!!!!😝

在这里插入图片描述

1.String

1.1 String概述:

  • 🍍🍍概述:String 类代表字符串,java程序中的所有字符串文字( 例如:“abc””)都被实现为此类的实现也就是说,java程序中的所有双引号字符串,都是String类的对象

例:

public class Student{
  String name="xiaoming";
  }

1.2 字符串特点

  • 🍍🍍字符串不可变,它们的值在创建后不能被更改
  • 🍍🍍虽然String的值是可变的,但是它们可以被共享
  • 🍍🍍字符串效果上相当于字符串(char[ ]),但是底层原理是字节数组(byte[ ])

2.String构造方法

🍀🍀🍀
其实String类有很多构造,但今天我们
介绍一些常用的构造方法

2.1 String构造方法的介绍

方法名说明
public String()创建一个空白字符串对象,不含有任何内容
public String(char[ ] chs)根据字符数组的内容,来创建字符串对象
public String(byte[ ] bys )根据字节数组的内容,来创建字符串对象
String s=“abc”;直接赋值的方式创建字符串对象,内容就是abc

2.2 构造方法代码演示

  • 🍒🍒代码:
public class StudentDemo1 {
    public static void main(String[] args) {
        //public String(); 创建一个空白字符串对象,不含有任何内容
        String s1=new String();//用了无参构造方法
        System.out.println("s1"+s1);

        //public String(char[ ] chs)根据字符数组的内容,来创建字符串对象

        char []ch={'a','b','c'};
        String s2=new String(ch);
        System.out.println("s2: "+s2);

        //public String(byte[ ] bys )根据字节数组的内容,来创建字符串对象

        byte []bys={97,98,99};//字节也是整数
        String s3=new String(bys);
        System.out.println("s3: "+s3);

        // String s="abc";直接赋值的方式创建字符串对象,内容就是abc
        String s4="abc";
        System.out.println("s4: "+s4);
    }
}
   
  • 🍍🍍这里推荐大家使用直接赋值的方式得到字符串对象

2.3 String对象的特点

  • 🍍🍍1️⃣通过new创建的字符串对象,每一次new都会申请一个内存空间,虽然内容相同,但是地址值不同

🍒🍒例:

char []chs={'a','b','c'};
String s2=new String(chs);
String s5=new String(chs);
System.out.println(s1==s5);

🍒🍒结果:
在这里插入图片描述

  • 🍍🍍 在上面⬆️⬆️代码中,JVM会首先创建一个字符数组,然后每一次new的时候都会有一个新的地址,只不过时s2和s5参考的字符串内容相同。
    🍓🍓🍓
  • 🍍🍍2️⃣以“ ”方式给出的字符串,只要字符序列相同(顺序和大小写),无论在程序代码中出现几次,JVM都会建立一个String对象,并在字符串中维护。

🍒🍒例:

String s3 ="abc";
String s4 ="abc";
  • 🍍🍍在上面代码中,针对一行代码,JVM会建立一个String对象放在字符串池中,并给s3参考;第二行则让s4直接参考字符串池中的String对象,也就是说它们本质上是同一个对象。

3.字符串的比较

🍇🍇🍇 在代码中我们通常会遇到字符串的比较这一问题,
下面来介绍两种字符串比较的方法

3.1 对等于号的比较做解释

  • 🍍🍍使用 == 做比较
  • 🍍🍍基本类型:比较的是数据值是否相同

🍒🍒例:

public class StudentDemo1 {
    public static void main(String[] args) {
        int a=6;
        int b=6;
        System.out.println(a==b);

🍒🍒结果:
在这里插入图片描述

  • 🍍🍍引用类型:比较的是地址值是否相同

🍒🍒例:

char []chs={'a','b','c'};
String s2=new String(chs);
String s5=new String(chs);
System.out.println(s1==s5);

🍒🍒结果:
在这里插入图片描述

3.2 equals比较符

  • 🍍🍍字符串是对象,它比较内容是否相同,是通过一个方法来实现的,这个方法叫:equals()
  • 🍍🍍用法:public boolean equals(Object anObject):,将此字符串与指定对象进行比较。由于我们比较的是字符串对象,所以参数直接传递一个字符串

🍒🍒例:

 System.out.println(s1.equals(s2));

3.3 等于号比较代码演示

🍒🍒字符串比较:

public class 字符串的比较 {
    public static void main(String[] args) {
        char [] chs={'a','b','c'};
        String s1=new String(chs);
        String s2=new String(chs);
        String s3="abc";
        String s4="abc";
        System.out.println(s1==s2);//等于号的比较
        System.out.println(s1==s3);
        System.out.println(s3==s4);
        System.out.println("-----------");

        System.out.println(s1.equals(s2));//equals比较
        System.out.println(s1.equals(s3));
        System.out.println(s3.equals(s4));
    }
}

🍒🍒结果:
在这里插入图片描述

4.知识点有关案例

🍇🍇🍇 学完以上内容之后,我们用一个案例来总结一下
我们学的知识点!!!

4.1 用户登录

  • 🍍🍍 案例要求:已知用户名和密码,请用程序实现模拟用户登录,总共给三次机会,登陆之后,给出相应的提示。

🍒🍒案例分析:

  • 🌲1️⃣:已知用户名和密码,用两个字符串去表示就好了!
  • 🌲2️⃣:键盘输入要登录的用户名和密码,这里用Scanner去实现啦!
  • 🌲3️⃣:拿键盘录入的用户名,密码和已知的用户名和密码进行比较,给出相应的提示。字符串的内容比较,用equals()方法来实现的哦!
  • 🌲4️⃣:用循环实现多次机会,这里的次数是明确的,用for循环来实现,并且登录成功时,使用break结束循环

🍒🍒代码演示

import java.util.Scanner;
public class 用户登录 {
    public static void main(String[] args) {
        for(int i=0;i<3;i++){

            String userid="123456789";
            String usermima="112233";
            Scanner sc=new Scanner(System.in);
            System.out.println("请输入账号:");
            String id=sc.nextLine();
            System.out.println("请输入密码:");
            String mima=sc.nextLine();
            if(id.equals(userid) && mima.equals(usermima)){
                System.out.println("登录成功!");
                break;
            }
            else{
                if(2-i==0){
                    System.out.println("你的账号被冻结 请去银行联系!");
                }
                else{
                    System.out.println("你还有"+(2-i)+"次机会!");
                }
            }
        }
    }
}

🍒🍒结果1️⃣(用户名和密码输入正确的情况下):
在这里插入图片描述

🍒🍒结果2️⃣(用户名和密码输入正确的情况下):
在这里插入图片描述

5.结语

🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄
🍻🍻到这我们的任务就结束啦!!!🌝
感谢大家的阅读 如果在内容方面有什么问题的话可以在评论区
或私信告诉我吧
博主小要求🙏🙏 如果这段对大家有用的话 就给博主一个免费
的点赞👍+评论✉️ +收藏💻吧🌹🌹🌹 感谢大家啦!!
🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

码农_迈热

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

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

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

打赏作者

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

抵扣说明:

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

余额充值