跳到主要内容

Java 程序:检查两个字符串是否为变位词

要理解这个示例,你需要了解以下 Java 编程 主题:

如果我们能通过重新排列一个字符串的字符来形成另一个字符串,那么这两个字符串就被称为易位构词。例如,RaceCare。在这里,我们可以通过重新排列 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();

// 检查长度是否相同
if(str1.length() == str2.length()) {

// 将字符串转换为字符数组
char[] charArray1 = str1.toCharArray();
char[] charArray2 = str2.toCharArray();

// 对字符数组排序
Arrays.sort(charArray1);
Arrays.sort(charArray2);

// 如果排序后的字符数组相同
// 则字符串是易位构词
boolean result = Arrays.equals(charArray1, charArray2);

if(result) {
System.out.println(str1 + " 和 " + str2 + " 是易位构词。");
}
else {
System.out.println(str1 + " 和 " + str2 + " 不是易位构词。");
}
}
else {
System.out.println(str1 + " 和 " + str2 + " 不是易位构词。");
}
}
}

输出

race 和 care 是易位构词。

在 Java 中,我们有两个字符串 str1str2。我们正在检查 str1str2 是否是易位构词。

我们首先将字符串转换为小写。这是因为 Java 区分大小写,Rr 在 Java 中是两个不同的字符。

这里,

  • str1.toCharArray() - 将字符串转换为字符数组
  • Arrays.sort() - 对两个字符数组进行排序
  • Arrays.equals() - 检查排序后的字符数组是否相等

如果排序后的数组相等,那么字符串是易位构词。

注意Arrays.sort() 按照 ASCII 值比较两个字符。字符 Rr 是不相等的。因此,字符串应该转换为相同的大小写。

示例 2:从用户输入中获取字符串并检查字符串是否为易位构词

import java.util.Arrays;
import java.util.Scanner;

class Main {
public static void main(String[] args) {

// 创建 Scanner 类的对象
Scanner input = new Scanner(System.in);

// 从用户处获取输入
System.out.print("输入第一个字符串: ");
String str1 = input.nextLine();
System.out.print("输入第二个字符串: ");
String str2 = input.nextLine();

// 检查长度是否相同
if(str1.length() == str2.length()) {

// 将字符串转换为字符数组
char[] charArray1 = str1.toCharArray();
char[] charArray2 = str2.toCharArray();

// 对字符数组排序
Arrays.sort(charArray1);
Arrays.sort(charArray2);

// 如果排序后的字符数组相同
// 则字符串是易位构词
boolean result = Arrays.equals(charArray1, charArray2);

if(result) {
System.out.println(str1 + " 和 " + str2 + " 是易位构词。");
}
else {
System.out.println(str1 + " 和 " + str2 + " 不是易位构词。");
}
}
else {
System.out.println(str1 + " 和 " + str2 + " 不是易位构词。");
}

input.close();
}
}

输出

输入第一个字符串: Race
输入第二个字符串: Care
RaceCare 是易位构

词。

在上面的示例中,我们使用了 Scanner 类从用户那里获取输入。在这里,我们检查了用户提供的字符串是否是易位构词。