在此示例中,我们将检查Java中两个字符串是否为字母易位词(anagram),一种把某个词或句子的字母的位置(顺序)加以改换所形成的新词。
如果我们可以通过排列另一个字符串的字符来形成一个字符串,则可以说两个字符串是字谜。例如,Race 与 Care。在这里,我们可以通过重新安排Care字母顺序来组成单词 Race。
import java.util.Arrays;
class Main {
public static void main(String[] args) {
String str1 = "Java";
String str2 = "Vaaj";
//检查长度是否相同
if(str1.length() == str2.length()) {
//将字符串转换为字符数组
char[] charArray1 = str1.toCharArray();
char[] charArray2 = str2.toCharArray();
//对字符数组进行排序
Arrays.sort(charArray1);
Arrays.sort(charArray2);
//如果排序的字符数组相同
//那么字符串是 anagram
boolean result = Arrays.equals(charArray1, charArray2);
if(result) {
System.out.println(str1 + " 和 " + str2 + " 是字母易位词.");
}
else {
System.out.println(str1 + " 和 " + str2 + " 不是字母易位词.");
}
}
}
}输出结果
Java 和 Vaaj 是字母易位词
在Java中,我们有两个名为str1和str2的字符串。在这里,我们检查str1和str2是否是字母数相同,但是顺序不同。
这里,
str1.toCharArray() - 将字符串转换为char数组
Arrays.sort() - 对两个字符数组进行排序
Arrays.equal() - 检查排序的char数组是否相等
如果排序的数组相等,则字符串为 anagram(字母易位词)。
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数组
char[] charArray1 = str1.toCharArray();
char[] charArray2 = str2.toCharArray();
//排序char数组
Arrays.sort(charArray1);
Arrays.sort(charArray2);
//如果排序的char数组相同
//那么字符串就是字母易位词
boolean result = Arrays.equals(charArray1, charArray2);
if(result) {
System.out.println(str1 + " 和 " + str2 + " 是字母易位词.");
}
else {
System.out.println(str1 + " 和 " + str2 + " 不是字母易位词.");
}
}
input.close();
}
}输出结果
输入第一个字符串: Race 输入第二个字符串: Care Race 和 Care 是字母易位词
在上面的示例中,我们使用Scanner类从用户那里获取输入。在这里,我们检查了用户提供的字符串是否为字母易位词。