import java.util.Arrays;
/**
* 判题工具类
*/
public class JudgmentQuestionUtils {
public static void main(String[] args) {
//使用方式
//1、多选题判断
//正确答案
String answer = "bca";
//所选选项
String choose = "ac";
System.out.println("---------------------------------");
//false
System.out.println("多选题判题结果===》" + compare(answer, choose));
//2、单选题判断
//正确答案
String answer1 = "b";
//所选选项
String choose1 = "A";
System.out.println("---------------------------------");
//false
System.out.println("单选题判断结果===》" + compare(answer1, choose1));
}
/**
* 校验两个数组值是否相同
*
* @param answer 答案选项
* @param choose 所选选项
* @return
*/
public static boolean compare(String answer, String choose) {
//toUpperCase()大写
//mySort()排序
char[] answerChar = mySort(answer.toUpperCase());
char[] chooseChar = mySort(choose.toUpperCase());
//结果
boolean flag = false;
//先判断两个数组长度是否相同
if (answerChar.length == chooseChar.length) {
//开始遍历
for (int i = 0; i < answerChar.length; i++) {
//用!=判断效率更高
if (answerChar[i] != chooseChar[i]) {
flag = false;
} else {
//遍历完所有元素没有不相等的返回true
flag = true;
}
}
} else {
//如果两数组长度不等直接返回false
flag = false;
}
return flag;
}
/**
* 字母排序a-z或A-Z
*
* @param str 字符穿
* @return
*/
public static char[] mySort(String str) {
//将字符串转换成char数组
char[] c = str.toCharArray();
//对数组进行排序
Arrays.sort(c);
//返回数组
return c;
}
}