package com.sort;
//判断两个字符串是否相等(换位字符串)
/*
* 字符串相等的条件:
1、不区分大小写
2、不区分顺序
比如“aBc”=“ABC”
“abc”=“bac”
*
* */
public class String3 {
// 字符转换成数字,相当于hashCode
public static int[] getIntArray(String str) {
int[] arrRet = new int[str.length()];
int i = 0;
for (char ch : str.toUpperCase().toCharArray()) {
arrRet[i++] = ch - 65; // 这本身没有必要-65,只不过想变成1234…更好理解
}
return arrRet;
}
// 求和,原来也可以在循环转化成数字的时候做的,分开只是为了更容易理解。
public static int sum(int[] arr) {
int sum = 0;
for (int i : arr) {
sum += i * i * i + 100; // 随便搞的一个算法,相等于求hashCode
}
return sum;
}
public static void main(String[] args) {
String s1 = "abc";
String s2 = "bca";
int sum1 = sum(getIntArray(s1));
int sum2 = sum(getIntArray(s2));
System.out.println(sum1 == sum2 ? "相等" : "不等");
}
}
判断两个字符串是否相等(换位字符串)
最新推荐文章于 2021-04-29 20:52:23 发布