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 ? "相等" : "不等"); } }