Java函数实现判断两个字符串是否为相同的字母排列
发布时间:2023-07-06 02:10:01
判断两个字符串是否为相同的字母排列,可以使用两种方法来实现。
方法1:使用排序
首先,将两个字符串转换为字符数组。
然后,对字符数组进行排序,可以使用Arrays类的sort方法。
最后,比较排序后的字符数组是否相同。
以下是使用排序方法实现的Java函数:
import java.util.Arrays;
public class SamePermutation {
public static boolean isSamePermutation(String str1, String str2) {
// 将字符串转换为字符数组
char[] charArray1 = str1.toCharArray();
char[] charArray2 = str2.toCharArray();
// 对字符数组进行排序
Arrays.sort(charArray1);
Arrays.sort(charArray2);
// 比较排序后的字符数组是否相同
return Arrays.equals(charArray1, charArray2);
}
public static void main(String[] args) {
String str1 = "abc";
String str2 = "cba";
if (isSamePermutation(str1, str2)) {
System.out.println("两个字符串是相同的字母排列");
} else {
System.out.println("两个字符串不是相同的字母排列");
}
}
}
方法2:使用字符计数
首先,创建一个长度为26的整型数组counts,表示26个字母的计数。
然后,遍历 个字符串,对计数数组进行相应字母的计数。
接着,遍历第二个字符串,对计数数组进行相应字母的计数。
最后,比较两个计数数组是否相同。
以下是使用字符计数方法实现的Java函数:
public class SamePermutation {
public static boolean isSamePermutation(String str1, String str2) {
// 创建一个长度为26的整型数组,表示26个字母的计数
int[] counts = new int[26];
// 遍历 个字符串,对计数数组进行相应字母的计数
for (char c : str1.toCharArray()) {
counts[c - 'a']++;
}
// 遍历第二个字符串,对计数数组进行相应字母的计数
for (char c : str2.toCharArray()) {
counts[c - 'a']--;
}
// 比较两个计数数组是否相同
for (int count : counts) {
if (count != 0) {
return false;
}
}
return true;
}
public static void main(String[] args) {
String str1 = "abc";
String str2 = "cba";
if (isSamePermutation(str1, str2)) {
System.out.println("两个字符串是相同的字母排列");
} else {
System.out.println("两个字符串不是相同的字母排列");
}
}
}
以上两种方法都可以判断两个字符串是否为相同的字母排列,具体使用哪种方法可以根据实际需求进行选择。
