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();
// 检查长度是否相同
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 中,我们有两个字符串 str1
和 str2
。我们正在检查 str1
和 str2
是否是易位构词。
我们首先将字符串转换为小写。这是因为 Java 区分大小写,R
和 r
在 Java 中是两个不同的字符。
这里,
- str1.toCharArray() - 将字符串转换为字符数组
- Arrays.sort() - 对两个字符数组进行排序
- Arrays.equals() - 检查排序后的字符数组是否相等
如果排序后的数组相等,那么字符串是易位构词。
注意:Arrays.sort()
按照 ASCII 值比较两个字符。字符 R
和 r
是不相等的。因此,字符串应该转换为相同的大小写。
示例 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
Race 和 Care 是易位构
词。
在上面的示例中,我们使用了 Scanner 类从用户那里获取输入。在这里,我们检查了用户提供的字符串是否是易位构词。