学习-Java字符串之String类创建字符串之使用equals和==判断字符串是否相等

任务描述

本关任务:使用 new 创建两个字符串(获取键盘输入的两个字符串,中间用空格分隔),并分别通过 equals 和 == 判断字符串是否相等。

相关知识

为了完成本关任务,你需要掌握: 1.什么是字符串; 2.字符串变量的声明; 2.创建字符串的三种方式; 3.equals 和 == 的使用。

什么是字符串

我们已经知道,数字、字母、汉字、符号等等都是字符,如 9、A、a、国、& 等。 那么,什么是字符串呢? j 是一个字符,a、v、a 也是字符,现在我将这些字符连接起来,java 就是一个由 4 个字符组成的字符串。 同理“字符串”是由 3 个汉字组成的字符串,“4+9” 是一个由数字、符号组成的字符串。

字符串变量的声明

在 Java 里使用 String 声明字符串,我们可以使用如下语句来声明一个字符串变量:

 
 
  1. String str; // 声明一个字符串变量 str;

创建字符串的三种方式

字符串变量有个明显的特征,两侧会有双引号,比如 “hello”。

  1. 通过 new 创建字符串,示例:
 
 
  1. String str=new String("我是一个字符串"); // 创建一个字符串并使用字符串变量指向它
  2. System.out.println(str);

执行结果:

扫描二维码关注公众号,回复: 13380086 查看本文章
 
 
  1. 我是一个字符串
  1. 通过赋值,引用字符串常量创建来创建字符串,这也是最常用的创建方式,示例:
 
 
  1. String str = "Jeffcky";
  2. System.out.println(str);

执行结果:

 
 
  1. jeffcky
  1. 通过字符数组创建字符串,示例:
 
 
  1. char a[] = {'j', 'e', 'f', 'f', 'c', 'k', 'y'};
  2. String str = new String(a);
  3. System.out.println(str);

执行结果:

 
 
  1. jeffcky

字符串也可以转化为字符数组:

 
 
  1. String str="fhfksdjf";
  2. char[] charArray=str.toCharArray();

equals 和 ==

equals 和 == 均表示相等的意思,但是它们相等的含义却有所区别。 在使用 == 比较基本数据类型 (byte、short、int、long、float、double、char,boolean)的时候,是通过比较它们实际的值来判断是否相同;而在比较引用数据类型(比如 String)时,是比较两个引用的地址是否相等,也就是是否指向同一对象。

== 运用在基本数据类型(byte, short, int, long、float、double、char,boolean)的时候,通过比较它们实际的值来判断是否相同;而用于比较引用数据类型(比如 String)时是比较俩个引用的地址是否相等,也就是是否指向一个对象。 equals 方法不能用于比较基本数据类型,如果没有对 equals 方法进行重写,比较的是引用类型的变量所指向的对象的地址,由于 String 等类对 equals 方法进行了重写,所以比较的是所指向的对象的内容。

 
 
  1. String s1 = new String("java");
  2. String s2 = new String("java");
  3. System.out.println(s1==s2); // 返回的结果为boolean类型
  4. System.out.print(s1.equals(s2)); // 返回的结果为boolean类型 ```
  5. 执行结果:
  6. ```java
  7. false
  8. true

对于字符串 s1 和 s2,是 new 出来的两个对象,又因为对于 String 来说,== 比较的是是否为同一对象,所以第一个结果为 false。 equals 比较的是对象内容是否相等,所以第二个结果为 true。

 
 
  1. String s1 = "java";
  2. String s2 = "java";
  3. System.out.println(s1==s2);
  4. System.out.println(s1.equals(s2));

执行结果:

 
 
  1. true
  2. true

对于字符串 s1 和 s2,属于一个对象,又因为对于 String 来说,== 比较的是是否为同一对象,所以第一个结果为 true。 equals 比较的是对象内容是否相等,所以第二个结果也是 true。

编程要求

仔细阅读右侧编辑区内给出的代码框架及注释,按照提示编写程序代码。

测试说明

平台将使用测试集运行你编写的程序代码,若全部的运行结果正确,则通关。

可在右侧 “测试结果”区查看具体的测试集详情。


开始你的任务吧,祝你成功!

/*
任务:
1.获取输入的两个字符串;
2.使用new分别创建两个字符串对象;
3.输出字符串;
4.分别使用equals和==比较这两个字符串是否相等。
输出样式见预期输出。
*/
import java.util.Scanner;

public class StrTest {
    public static void main(String[] args) {
        // 请在Begin-End间编写代码
        /********** Begin **********/
        Scanner scanner = new Scanner(System.in);
        String s = scanner.next();
        String s1 = scanner.next();
        // 第一步:使用new创建第一个字符串对象,并输出该字符串
        System.out.println("获取的第一个字符串:"+s);
        // 第二步:使用new创建第二个字符串对象,并输出该字符串
        System.out.println("获取的第二个字符串:"+s1);
        // 第三步:分别使用==和equals比较创建的两个字符串是否相等,并输出比较结果
        System.out.print("使用==比较的结果:");
        System.out.println(s==s1);
        System.out.println("使用equals比较的结果:"+s.equals(s1));
        /********** End **********/

    }
}

猜你喜欢

转载自blog.csdn.net/qq_53149358/article/details/121403109