//以int类型的数组作为测试
int[] a = new int['z'];
System.out.println(a.length); //122 就是ASCII中的字母编号,是一一对应的
如果想要存入26个英文字母,首先开辟一个26个位置的数组
int[] b = new int[26]
//则b['z'-'a']表示的是索引值为26的数组元素,'z'的位置可以被其他英文字母替换表示索引0到26之间任意一个位置
该技巧可以用于统计出现字母的数量,从而来推断两个字符串中是否有相同的字母:
int []arr=new int[26];
Scanner sc=new Scanner(System.in);
String str1=sc.nextLine();
String str2=sc.nextLine();
for(int i=0;i<str1.length();i++) {
char c=str1.charAt(i);
arr[c-'a']=arr[c-'a']+1;
}
boolean f=true;
for(int i=0;i<str2.length();i++) {
char c=str2.charAt(i);
arr[c-'a']=arr[c-'a']-1;
if(arr[c-'a']<0) {
f=false;
break;
}
}
if(f) {
System.out.println("YES");
}else {
System.out.println("NO");
}