Java - String contentEquals() 方法



描述

Java String contentEquals() 方法用于比较当前字符串与给定的字符序列。此方法返回一个布尔值,当且仅当此字符串表示与指定序列相同的 char 值序列时返回 true;否则返回 false。

contentEquals() 方法接受两个参数,分别是 CharSequence 和 StringBuffer,它们分别保存 cs 和 sb 值。在将当前字符串与指定的字符序列和字符串缓冲区进行比较时,它不会抛出任何异常。

CharSequence 是字符值的易读序列。字符串是字符的不可变序列,并实现 CharSequence 接口。StringBuffer 与字符串类似,但它是可修改的且同步的。

contentEquals() 方法有两个多态变体,它们具有不同的参数:CharSequence 和 StringBuffer(以下是所有多态变体的语法)。

语法

以下是Java String contentEquals() 方法的语法:

public boolean contentEquals(CharSequence cs)  
public Boolean contentEquals(StringBuffer sb) 

参数

  • cs − 这是要与该字符串进行比较的字符序列。

  • sb − 这是要与该字符串进行比较的 StringBuffer 序列。

返回值

此方法返回一个布尔值,如果当前字符串与给定对象相等则为 True,否则为 false。

使用 CharSequence 示例检查匹配字符串

如果我们将CharSequence作为参数传递给此方法,并且它与当前字符串具有相同的值,则 contentEquals() 方法将返回true

在下面的程序中,我们使用值为"Hello"创建了一个字符串字面量。然后,我们使用相同的值"Hello"创建了一个 CharSequence。由于两者具有相同的值,因此当我们使用contentEquals()方法比较它们时,此方法将返回 true。

package com.tutorialspoint;

public class TP {
   public static void main(String[] args) {
      
      // create a string literal
      String str1 = "Hello";
      System.out.println("The String is: " + str1);
      
      //create a charSequence
      CharSequence ch = "Hello";
      System.out.println("The given char sequence is: " + ch);
      System.out.println("The given string is equal to the specified sequence or not? " + str1.contentEquals(ch));
   }
}

输出

执行上述程序后,将产生以下结果:

The String is: Hello
The given char sequence is: Hello
The given string is equal to the specified sequence or not? true

使用 CharSequence 示例检查不匹配字符串

如果我们将 CharSequence 作为参数传递给方法,并且它与当前字符串的值不同,则此方法将返回false

在下面的程序中,我们使用值为"TutorialsPoint"创建了一个字符串类的对象。然后,使用contentEquals()方法,我们尝试比较指定字符序列处的字符串。由于两者具有不同的值,因此该方法将返回false

package com.tutorialspoint;

public class TP {
   public static void main(String[] args) {
      
      // create an object of the String  class
      String str = new String("TutorialsPoint");
      
      // CharSequance declaration
      CharSequence cs = "Point";
      System.out.println("The string is: " + str);
      System.out.println("The CharSequence is: " + cs);
      
      // declare boolean variable to hold the method value
      boolean bool = str.contentEquals(cs);
      System.out.println("The given string is equal to the specified sequence or not? " + bool);
   }
}

输出

以下是上述程序的输出:

The string is: TutorialsPoint
The CharSequence is: Point
The given string is equal to the specified sequence or not? false

使用 StringBuffer 示例检查匹配字符串

如果我们将StringBuffer作为参数传递给方法,并且它与字符串具有相同的值,则 contentEquals() 方法将返回true

在下面的程序中,我们使用值为"Hello World"实例化字符串类。然后,我们使用值为"Hello World"创建了一个 StringBuffer 类的对象。使用contentEquals()方法,我们尝试比较指定 StringBuffer 处的字符串。由于两者具有相同的值,因此 contentEquals() 方法将返回true

package com.tutorialspoint;

public class TP {
   public static void main(String[] args) {
      
      // Instantiate the String class
      String str = new String("Hello World");
      
      // create an object of the StringBuffer class
      StringBuffer sb = new StringBuffer("Hello World");
      System.out.println("The string is: " + str);
      System.out.println("The StringBuffer is: " + sb);
      
      // using contentEquals() method
      System.out.println("The given string is equal to the specified StringBuffer sequence or not? " + str.contentEquals(sb));
   }
}

输出

上述程序产生以下输出:

The string is: Hello World
The StringBuffer is: Hello World
The given string is equal to the specified StringBuffer sequence or not? true

使用 CharSequence 示例检查不匹配字符串

在此程序中,我们使用值为"JavaScript"创建了一个字符串字面量。然后,我们使用值为"Java"创建了一个 StringBuffer。使用contentEquals()方法,我们尝试将字符串与指定的 StringBuffer 进行比较。

package com.tutorialspoint;

public class TP {
   public static void main(String[] args) {
      
      // create a string literal
      String str ="JavaScript";
      
      // Instantiate the StringBuffer class
      StringBuffer sb = new StringBuffer("Java");
      System.out.println("The string is: " + str);
      System.out.println("The StringBuffer is: " + sb);
      
      // using contentEquals() method
      boolean bool = str.contentEquals(sb);
      if(bool) {
         System.out.println("The given string is equal to the specified StringBuffer sequence");
      } else {
         System.out.println("The given string is not equal to the specified StringBuffer sequence");
      }
   }
}

输出

执行上述程序后,将生成以下输出:

The string is: JavaScript
The StringBuffer is: Java
The given string is not equal to the specified StringBuffer sequence

使用 contentEquals() 方法检查字符串时出现异常的示例

如果给定的字符串值为null,则此方法将抛出NullPointerException

在下面的示例中,我们使用null 值创建了一个字符串。然后,我们使用值为"Java"实例化 StringBuffer 类。使用contentEquals()方法,我们尝试将给定的字符串与指定的 StringBuffer 进行比较。

package com.tutorialspoint;

public class Demo {
   public static void main(String[] args) {
      try {
         
         // create a string literal
         String str = null;
         
         // Instantiate the StringBuffer class
         StringBuffer sb = new StringBuffer("Java");
         System.out.println("The string is: " + str);
         System.out.println("The StringBuffer is: " + sb);
         
         // using contentEquals() method
         boolean bool = str.contentEquals(sb);
         if(bool) {
            System.out.println("The given string is equal to the specified StringBuffer sequence");
         } else {
            System.out.println("The given string is not equal to the specified StringBuffer sequence");
         }
      } catch(NullPointerException e) {
         e.printStackTrace();
         System.out.println("Exceptipn: " + e);
      }
   }
}

输出

以下是上述程序的输出:

The string is: null
java.lang.NullPointerException: Cannot invoke "String.contentEquals(StringBuffer)" because "str" is null
The StringBuffer is: Java
	at com.tutorialspoint.String.Demo.main(Demo.java:13)
Exceptipn: java.lang.NullPointerException: Cannot invoke "String.contentEquals(StringBuffer)" because "str" is null
java_lang_string.htm
广告