Java教程

Java 程序来检查两个字符串是否是字谜

Java 程序来检查两个字符串是否是字谜

在这个例子中,我们将检查两个字符串在 Java 中是否是 anagram。
要理解此示例,您应该了解以下Java 编程主题:
Java 字符串 Java 数组
如果我们可以通过排列另一个字符串的字符来形成一个字符串,那么两个字符串被称为变位词。例如,Race 和 Care。在这里,我们可以通过排列Care的字符来形成Race。

示例 1: Java 程序检查两个字符串是否为字谜

import java.util.Arrays;
class Main {
  public static void main(String[] args) {
    String str1 = "Race";
    String str2 = "Care";
    
    str1 = str1.toLowerCase();
    str2 = str2.toLowerCase();
    // check if length is same
    if(str1.length() == str2.length()) {
      // convert strings to char array
      char[] charArray1 = str1.toCharArray();
      char[] charArray2 = str2.toCharArray();
      // sort the char array
      Arrays.sort(charArray1);
      Arrays.sort(charArray2);
      // if sorted char arrays are same
      // then the string is anagram
      boolean result = Arrays.equals(charArray1, charArray2);
      if(result) {
        System.out.println(str1 + " and " + str2 + " are anagram.");
      }
      else {
        System.out.println(str1 + " and " + str2 + " are not anagram.");
      }
    }
    else {
      System.out.println(str1 + " and " + str2 + " are not anagram.");
    }
  }
}
输出
race and care are anagram.
在 Java 中,我们有两个名为 str1str2 的字符串。我们正在检查 str1str2 是否是字谜。
我们首先将字符串转换为小写。这是因为 Java 区分大小写, Rr 是 Java 中的两个不同字符。
这里,
str1.toCharArray()-将字符串转换为字符数组 Arrays.sort()-对两个字符数组进行排序 Arrays.equal()-检查排序后的字符数组是否相等
如果排序后的数组相等,则字符串是字谜。
注意: Arrays.sort() 将两个字符与 ASCII 值进行比较。并且,字符 R 和 r 不相等。因此,字符串应该转换为相同的大小写。

示例 2: 从用户那里获取字符串输入并检查字符串是否为字谜

import java.util.Arrays;
import java.util.Scanner;
class Main {
  public static void main(String[] args) {
    // create an object of Scanner class
    Scanner input = new Scanner(System.in);
    // take input from users
    System.out.print("Enter first String: ");
    String str1 = input.nextLine();
    System.out.print("Enter second String: ");
    String str2 = input.nextLine();
    // check if length is same
    if(str1.length() == str2.length()) {
      // convert strings to char array
      char[] charArray1 = str1.toCharArray();
      char[] charArray2 = str2.toCharArray();
      // sort the char array
      Arrays.sort(charArray1);
      Arrays.sort(charArray2);
      // if sorted char arrays are same
      // then the string is anagram
      boolean result = Arrays.equals(charArray1, charArray2);
      if(result) {
        System.out.println(str1 + " and " + str2 + " are anagram.");
      }
      else {
        System.out.println(str1 + " and " + str2 + " are not anagram.");
      }
    }
    else {
      System.out.println(str1 + " and " + str2 + " are not anagram.");
    }
    input.close();
  }
}
输出
Enter first String: Race
Enter second String: Care
Race and Care are anagram.
在上面的示例中,我们使用了 Scanner 类来获取用户的输入。在这里,我们检查了用户提供的字符串是否是字谜。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4