java(抓哇)基础篇字符串String的介绍(在更新中 冲的话冲)
【摘要】 这一期我们介绍一下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.结语
🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄
🍻🍻到这我们的任务就结束啦!!!🌝
感谢大家的阅读 如果在内容方面有什么问题的话可以在评论区
或私信告诉我吧
博主小要求🙏🙏 如果这段对大家有用的话 就给博主一个免费
的点赞👍+评论✉️ +收藏💻吧🌹🌹🌹 感谢大家啦!!
🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)